0

这个宏似乎用返回静态类型 SNMPWriteObject 的函数替换了 SNMPWRITEFUNC(w,x,y,z,q),但也许它是 SNMPWriteObject 方法的重载?对我来说很模糊,所以我会感谢在这方面有经验的人的帮助!

#define SNMPWRITEFUNC(w,x,y,z,q) static SNMPWriteObject R##w(x,y,z,q);
4

1 回答 1

1

它只是一个方便的宏,用于生成许多类似的函数原型,所以如果你写例如

SNMPWRITEFUNC(foo,int,int,int,int)
SNMPWRITEFUNC(bar,char,float,char,float)
SNMPWRITEFUNC(blech,int,char,float,int)

它将扩展为:

static SNMPWriteObject Rfoo(int,int,int,int);
static SNMPWriteObject Rbar(char,float,char,float);
static SNMPWriteObject Rblech(int,char,float,int);

请注意,这##通常称为令牌粘贴运算符

另请注意,上面的宏和示例不是特定于 C++ 的——这很容易成为 C 代码。

于 2013-08-12T22:08:07.830 回答