C 结构与 typedef 结构问题

标签 c struct typedef

所以我的问题是多方面的。

为了理解 C(不是 C++)我相信下面的代码:

struct Foo { int bar; }; 

创建一个我可以使用的自定义类型,但这样做也是如此:

typedef Foo { int bar; };

我看到的唯一区别是我是否必须在 Foo 类型的变量前使用“struct”关键字。导致这种行为的差异是什么?

最佳答案

区别在于:

struct Foo { int bar; }; 

创建结构类型{ int bar; } 命名为 Foo。 IE。完整的类型名称是 struct Foo

typedef Foo { int bar; };

为未命名的结构类型 创建别名 Foo{ int bar; }

但是我不确定您的语法对于严格的 C 语言是否完全正确,但不知何故它对您的编译器来说没问题。或者它创建了一些不同的东西,但偶然它起作用了,C 语法可能非常棘手。无论如何,第二个陈述应该是:

typedef struct { int bar; } Foo;

进一步引用you can use this .

关于C 结构与 typedef 结构问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6936693/

相关文章:

c - 如何使用函数将结构指针设置为 NULL

ios - swift 3 : Using Two Arrays to populate grouped Table

c - 通过套接字发送二进制文件

c - SIG_DFL 在编译时抛出警告,在执行时被 OS 忽略

c - 第二个 getpwuid 调用似乎覆盖了旧值

c - 指向行为异常的函数的指针

c - C中指向自身结构的指针

C Socket/Client fork(),共享结构体内存

c++ - 强制 C++ 结构紧密打包

c++ - 在 C++ 中正确使用 typedef