在C++中,之间有什么区别:
struct Foo { ... };
Run Code Online (Sandbox Code Playgroud)
和
typedef struct { ... } Foo;
Run Code Online (Sandbox Code Playgroud) 以下是C中的等价物吗?
// #1
struct myStruct {
int id;
char value;
};
typedef struct myStruct Foo;
// #2
typedef struct {
int id;
char value;
} Foo;
Run Code Online (Sandbox Code Playgroud)
如果没有,我应该使用哪一个以及何时使用?
可能重复:
struct,typedef struct的目的,在C++
typedef struct vs struct definitions中
在我维护的代码中,我经常看到以下内容:
typedef enum { blah, blah } Foo;
typedef struct { blah blah } Bar;
Run Code Online (Sandbox Code Playgroud)
代替:
enum Foo { blah, blah };
struct Bar { blah blah };
Run Code Online (Sandbox Code Playgroud)
我总是使用后者,这是我第一次看到前者.所以问题是为什么一个人使用一种风格而不是另一种风格.有什么好处?它们在功能上是否相同?我相信他们但并非100%肯定.