我查看了一些代码并发现惯例是将指针类型转换为
SomeStruct*
Run Code Online (Sandbox Code Playgroud)
成
typedef SomeStruct* pSomeStruct;
Run Code Online (Sandbox Code Playgroud)
这有什么好处吗?
何时应该使用以下陈述之一?
typedef struct Foo {
int a;
} Bar;
Run Code Online (Sandbox Code Playgroud)
和
typedef struct {
int a;
} Bar;
Run Code Online (Sandbox Code Playgroud)
并使用它
Bar bar1 = { 5 };
Run Code Online (Sandbox Code Playgroud)
我理解第二个是匿名结构但不确定何时应该使用另一个结构.
在C代码中,我看到了以下内容:
typedef struct SomeStructTag {
// struct members
} SomeStruct;
Run Code Online (Sandbox Code Playgroud)
我不清楚为什么这有什么不同:
typedef struct SomeStruct {
// struct members
} SomeStruct;
Run Code Online (Sandbox Code Playgroud)
为类型使用特定名称并将typedef其用于不同类型名称有什么意义?