【发布时间】:2013-05-31 08:06:38
【问题描述】:
我在 C 中有这段代码:
void f(void *x) {
printf(">>> %p\n", x);
}
int main() {
f NULL;
return 0;
}
我认为是针对 NULL 的定义,但我想解释一下以澄清我的疑问。
【问题讨论】:
-
你到底不喜欢这里什么?
-
iirc NULL 是一个#define'd to ((void*)0),所以当它被复制进去时,你有 f((void*)0) 作为函数的参数跨度>
-
第一次看到
f NULL这种形式。 -
如果您正在运行 gcc,请尝试 gcc -E 看看会发生什么。我想你会明白的