创建结构时你可以做
struct name {
...
} var1, var2;
创建结构名称类型的变量。
如果你想做 typedef 语法是
typedef <existing type> <alias>
为你做的结构类型做一个typedef
typedef struct name(optional) {
...
} Typename;
其中 typename 是别名,struct 部分是现有类型。
我想知道您是否可以组合上面的代码部分。 ex 像在第二个示例中一样在结构上执行 typedef,并在同一行中声明 var1 和 var2,就像我们在第一个示例中所做的那样。这似乎不可能,因为 Typename 似乎取代了 var1 和 var2
最佳答案
不,不可能。没有语法。
切线相关的是,未标记的结构是可能的:
struct {
...
} var1, var2;
附带说明一下,通过不为结构添加 typedef 可以避免该问题。
更笼统地说,如果每个语句只做一件事(比如定义一个变量或定义一个类型),代码就更容易理解。因此,即使这是可能的,这样做也不一定是个好主意。
根据同样的原则,如果你决定遵循它,你应该写:
struct name {
...
};
struct name var1, var2;
或者,使用 typedef:
typedef struct name {
...
} name;
name var1, var2;
注意:如果你不需要在结构本身中指向相同结构类型的指针(链表和树基本上需要),你可以使用未标记的结构:typedef struct { ... } name;
关于c - 带有 typedef 的结构并声明一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73697429/