【发布时间】:2011-12-22 13:31:47
【问题描述】:
我正在使用一个定义如下常量的库:
#define SOME_BIG_CONSTANT 0x0000000100000000
这个字面量太大而不能表示为long,所以任何使用这个宏的程序都无法编译(使用gcc 4.1.2 for VxWorks)。可行的(非标准,但受此编译器支持)解决方案是将后缀 ull 添加到文字中:
#define SOME_BIG_CONSTANT 0x0000000100000000ull
但是,这需要我修改库头文件,而我不想这样做。我很讨厌宏,所以我的问题是,如何定义一个可以添加该后缀的宏,我可以这样称呼它:
ULL_(SOME_BIG_CONSTANT)
这将扩展为:
0x0000000100000000ull
【问题讨论】: