创建结构体时你可以这样做
struct name {
...
} var1, var2;
Run Code Online (Sandbox Code Playgroud)
创建结构名称类型的变量。
如果你想做 typedef 语法是
typedef <existing type> <alias>
Run Code Online (Sandbox Code Playgroud)
为您所做的结构类型执行 typedef
typedef struct name(optional) {
...
} Typename;
Run Code Online (Sandbox Code Playgroud)
其中 typename 是别名,struct 部分是现有类型。
我想知道您是否可以合并上面的代码部分。ex 对结构体执行 typedef,如第二个示例中所示,并在同一行中声明 var1 和 var2,就像我们在第一个示例中所做的那样。这似乎不可能,因为 Typename 似乎取代了 var1 和 var2
不,不可能。没有相应的语法。
切线相关的是,可能的是具有未标记的 struct:
struct {
...
} var1, var2;
Run Code Online (Sandbox Code Playgroud)
附带说明一下,通过不为结构添加 typedef 可以避免该问题。
更一般地说,如果每个语句只做一件事(例如定义变量或定义类型),则代码更容易理解。因此,即使这是可能的,这样做也不一定是一个好主意。
根据同样的原则,如果您决定遵循它,您应该写:
struct name {
...
};
struct name var1, var2;
Run Code Online (Sandbox Code Playgroud)
或者,使用 typedef:
typedef struct name {
...
} name;
name var1, var2;
Run Code Online (Sandbox Code Playgroud)
注意:如果您不需要结构本身中指向相同结构类型的指针(基本上链表和树需要),您可以使用未标记的结构:typedef struct { ... } name;
| 归档时间: |
|
| 查看次数: |
350 次 |
| 最近记录: |