这个 C 结构赋值是什么意思



我正在尝试通读一些 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的指针的一种稍微繁琐的方法,NULL stdio.h定义为((void *)0)。你

最好有:
static struct sym_table *sym_array = NULL;

右侧相当于 NULL 指针。但在这里,它是一个类型的 NULL 指针(结构 sym_table *)

这是Stroustrup的方式。他讨厌宏。所以他总是在他的代码中使用0,或者最终在引入关键字nullptr时使用 nullptr .我认为它来自C++代码或通常使用C++的人编写的程序。

最新更新