gpt4 book ai didi

未声明结构的 C typedef 不会抛出任何编译错误

转载 作者:太空狗 更新时间:2023-10-29 15:14:03 28 4
gpt4 key购买 nike

我只是想知道 typedef 在与未声明的结构一起使用时如何不抛出任何编译错误。下面的代码正在编译,没有任何警告和错误。我怀疑带有未声明结构的 typedef 怎么没有抛出任何错误。是不是所有平台都一样

#include <stdio.h>

typedef struct undeclared_struct_st UND_STRUCT_S;

int main()
{
printf("\nhello world\n");
return 0;
}

我正在使用 gcc 4.3.4 在 Suse 11 中执行这个程序。

最佳答案

typdef struct undeclared_struct_st UND_STRUCT_S;

有效。它将 struct undeclared_struct_st 声明为 incompele 类型,然后将 UND_STRUCT_S 声明为 struct undeclared_struct_st 的类型定义。您不能创建不完整类型的对象,但可以创建指向不完整类型对象的指针。 struct undeclared_struct_st 可以在另一个翻译单元中声明。

关于未声明结构的 C typedef 不会抛出任何编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17786816/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com