【发布时间】:2013-10-17 16:44:54
【问题描述】:
我知道这段代码永远不应该被执行,但*(NULL) 是否按 C99 标准成功编译?
#include <stdio.h>
int main(void) {
*(NULL);
return 0;
}
PS: 在ideone 上运行它返回 0 但我不知道正在使用的编译器版本:(
【问题讨论】:
-
“在 ideone 上运行它似乎有效”:定义“工作”。你的意思是它按预期崩溃还是返回错误代码
0? -
是的。 C99 将允许你编译它。
-
C99 不“允许”它。
-
请澄清问题。你是在问代码是否应该编译,或者它的行为是否定义良好?