什么是以下声明的含义是:什么是字符的含义(&测试(...))[2]
char (& test(...))[2];
我粘贴它在函数体内的是,它编译所有对。我不知道我能用它做什么,但它通过了汇编。
我遇到过类似this的问题。
什么是以下声明的含义是:什么是字符的含义(&测试(...))[2]
char (& test(...))[2];
我粘贴它在函数体内的是,它编译所有对。我不知道我能用它做什么,但它通过了汇编。
我遇到过类似this的问题。
这是一个函数的声明,它带有一个可变参数列表并返回一个对数组的引用,参见2 char
。
请注意,如果定义一个像这样的函数,则参数无法访问(通过标准方法),因为<cstdarg>
宏需要一个可变参数列表才能遵循命名参数。
如果您愿意,您可以使用此声明定义一个函数,并返回对适当数组的引用。您可以使用任何参数调用它,但要遵守...
参数的限制,其中包括传递非POD类类型导致未定义行为的限制。
E.g.
namespace
{
char samplearray[2];
}
char (& test(...))[2]
{
return samplearray;
}
声明测试作为可变参数函数返回的2
char
小号
用于解压延这种声明一个有用的位点的数组的引用是cdecl: C gibberish <-> English(尽管它不理解可变参数,并且是C面向的而不是C++)。
匿名命名空间在上面的代码中做了什么? – 2010-09-02 07:30:41
在匿名命名空间中定义的变量不能在命名空间所在文件的外部“extern”。 – Donotalo 2010-09-02 07:33:26