昨天我正在面试一个中级软件工程职位的人,他提到在C中,NULL并不总是零,并且他已经看到了C的实现,其中NULL不为零.我觉得这很可疑,但我想确定.谁知道他是对的?
(回复不会影响我对这位候选人的判断,我已将决定提交给我的经理.)
假设我们有这样的结构:
struct A
{
int x;
int y;
};
Run Code Online (Sandbox Code Playgroud)
有什么区别
A a = {0};
Run Code Online (Sandbox Code Playgroud)
和
A a;
memset(&a,0,sizeof(A));
Run Code Online (Sandbox Code Playgroud) 这个问题困扰了我一段时间.我从来没有看到过NULL的不同定义,它始终是
#define NULL ((void *) 0)
Run Code Online (Sandbox Code Playgroud)
是否有任何体系结构,其中NULL定义不同,如果是这样,为什么编译器不为我们声明这个?