X Macro生成杂散运算符

时间:2017-09-08 02:13:24

标签: c++ macros

我尝试创建一个宏来定义X,但是08和09被编译器误解为杂散运算符。当其他人工作正常时,为什么会失败?

#define LIST_TEST_X \
    X(A,01)\
    X(B,02)\
    X(C,03)\
    X(D,04)\
    X(E,05)\
    X(F,06)\
    X(G,07)\
    X(H,08)\
    X(I,09)\
    X(K,10)

enum XEnum
{
#define X(A, b)  A=b,
    LIST_TEST_X
#undef X
};

1 个答案:

答案 0 :(得分:6)

8开头的整数常量是八进制常量。由于908不是有效数字,09var endTransition = "webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend"; $('#test').click(function() { $(this).css('opacity',0).off().one(endTransition, function(e) { // your callback }); }); 将无法编译。

删除常量上的前导零,或用空格替换它们。