zend_class_entry* ce = 0L;
Run Code Online (Sandbox Code Playgroud)
我的问题是 - 这有效吗?我要说的不是,用空指针初始化变量,或者是一个未经修饰的(并且可能是转换为
void *)0常量,或者是一个评估为NULL应该使用的宏.
但是,我无法在支持此解释的标准中找到确定的语言.它只是说:
值为0的整型常量表达式或类型为void*的表达式称为空指针常量.
0L是一个整数常量表达式,其值为零.当用作指针时,这样的常量表达式是空指针常量.这正是你引用的句子所说的(C99 6.3.2.3/3):
具有该值的整数常量表达式
0或此类表达式转换为类型void *称为空指针常量.
紧接着是一个语句,即空指针常量可以转换为空指针:
如果将空指针常量转换为指针类型,则保证将结果指针(称为空指针)与指向任何对象或函数的指针进行比较.
为什么你认为它0不能用作空指针常量?
| 归档时间: |
|
| 查看次数: |
1267 次 |
| 最近记录: |