繁体   English   中英

这个C结构分配是什么意思?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM