读书人

#define宏定义的有关问题望

发布时间: 2012-07-29 15:26:14 作者: rapoo

#define宏定义的问题,望高手指点
如题,几个看不懂的宏定义,望高手解释,谢过。
① #define TYPEINIT2_FACTORY(sType, sSuper1, sSuper2, Factory) \
TYPEINIT_FACTORY(sType, Factory); \
SUPERTYPE(sSuper1); \
SUPERTYPE(sSuper2); \
TYPEINIT_END(sType)
②#define RTL_CONSTASCII_USTRINGPARAM( constAsciiStr ) constAsciiStr, ((sal_Int32)(sizeof(constAsciiStr)-1)), RTL_TEXTENCODING_ASCII_US

[解决办法]
有参数的宏定义请参考 http://baike.baidu.com/view/2076445.htm 第二节.
1. TYPEINIT2_FACTORY 传入4个参数sType, sSuper1, sSuper2, Factory. 可以是变量或值.
分别 执行下面的4个语句.
加上 \ 是宏定义的要求.

2. 看字面意思应该是作为一个函数的参数.
使用时
somefunction(RTL_CONSTASCII_USTRINGPARAM( constAsciiStr ))
= somefunction(constAsciiStr, ((sal_Int32)(sizeof(constAsciiStr)-1)), RTL_TEXTENCODING_ASCII_US)
[解决办法]
宏定义就是字符替换。打开预处理开关,查看被替换后生成的是什么

读书人网 >C++

热点推荐