2010-09-02 60 views

回答

3

这是一个函数的声明,它带有一个可变参数列表并返回一个对数组的引用,参见2 char

请注意,如果定义一个像这样的函数,则参数无法访问(通过标准方法),因为<cstdarg>宏需要一个可变参数列表才能遵循命名参数。

如果您愿意,您可以使用此声明定义一个函数,并返回对适当数组的引用。您可以使用任何参数调用它,但要遵守...参数的限制,其中包括传递非POD类类型导致未定义行为的限制。

E.g.

namespace 
{ 
    char samplearray[2]; 
} 

char (& test(...))[2] 
{ 
    return samplearray; 
} 
+0

匿名命名空间在上面的代码中做了什么? – 2010-09-02 07:30:41

+0

在匿名命名空间中定义的变量不能在命名空间所在文件的外部“extern”。 – Donotalo 2010-09-02 07:33:26

1

声明测试作为可变参数函数返回的2 char小号

用于解压延这种声明一个有用的位点的数组的引用是cdecl: C gibberish <-> English(尽管它不理解可变参数,并且是C面向的而不是C++)。

+1

哇,这是一个有趣的网站。我可以坐下来,点击“刷新”几小时:) – FireAphis 2010-09-02 07:38:44

+0

@FireAphis这是当你知道是时候寻求专业帮助; o) – Motti 2010-09-02 08:24:10

相关问题