我为什么要这样做?
typedef struct Frame_s
{
int x;
int y;
int z;
} Frame_t;
Run Code Online (Sandbox Code Playgroud)
此外,如果我想创建一个对象,我使用Frame_s或Frame_t?
你会用的Frame_t.
随着typedef你是说Frame_t和struct Frame_s是完全相同的类型.
所以这些是等价的句子:
// 1
Frame_t f;
// 2
struct Frame_s f;
Run Code Online (Sandbox Code Playgroud)
我会用:
typedef struct
{
int x;
int y;
int z;
} Frame_t;
Run Code Online (Sandbox Code Playgroud)
并且总是声明我的vars像这样:
Frame_t f1, f2, f3;
Run Code Online (Sandbox Code Playgroud)
混淆通常来自您在C++代码段中使用该句子的地方.如果你使用C++,typedef你可以使用:
// 1
Frame_t f;
// 2
Frame_s f;
Run Code Online (Sandbox Code Playgroud)
但是如果使用普通的C编译器,则//2无效.