我正在测试看到NULL常量确实占用了指针的大小:
ASSERT(sizeof NULL == sizeof(char*));
但是,我不小心写了以下内容:
ASSERT(sizeof NULL == sizeof char);
应该编译,但它给了我以下错误:
error: expected expression before ‘char’
在括号中隐藏了NULL
之后发生了同样的事情
ASSERT(sizeof(NULL) == sizeof char);
NULL常量是否通常假定由一个宏定义,该宏将它与一个等于0的指针相关联?该陈述显然是错误的,但据我所知,没有语法错误。 如果这是真的,为什么我收到编译错误?