[英]What does this C struct assignment mean?
我正在尝试阅读一些C源代码,并且遇到了我不理解的结构分配:
static struct sym_table *sym_array = (struct sym_table *) 0;
我知道左侧正在尝试初始化一个指向“ sym_table”类型的结构的指针(该符号在其他地方定义); 但是,我正在努力理解右侧。 这可能很简单,但是我在所见过的任何在线C教程中都找不到这种分配的类似示例。
如果有人能对此有所了解,我将不胜感激!
static struct sym_table *sym_array = (struct sym_table *) 0;
将指针设置为NULL
方法有点麻烦,在stdio.h
中将NULL
定义为((void *)0)
。 您最好拥有:
static struct sym_table *sym_array = NULL;
右侧等效于NULL指针。 但是在这里,它是类型为(struct sym_table *)的NULL指针
这就是Stroustrup的方式。 他讨厌宏。 因此,他总是在代码中使用0
,或者最终在关键字nullptr
被引入nullptr
。 我认为它来自C ++代码或通常使用C ++的人编写的程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.