我总是看到人们这样使用它:
struct myStruct{
...
};
void func(struct myStruct s){
...
}
但我这样使用它,省略了“struct”
void func(myStruct s){
...
}
它仍然有效,所以有区别吗?
答案 0 :(得分:1)
void func(myStruct s){
...
}
除非您使用undefined type mystruct
使typedef
成为数据类型的别名,否则会导致C中出现mystruct
错误。
一个typedef
语句,如
typedef struct myStruct myStruct;
会使myStruct
成为struct myStruct
的别名,因此两者都相同
在C ++中,两者都可以。
答案 1 :(得分:0)
C ++与C兼容,但在声明struct变量时也不需要输入struct
(与类相同)。
所以在C ++中都是
void func(struct myStruct s); //compatibility with C
和
void func(myStruct s); //C++ like declaration
是对的。