如果两者的工作方式相同,那么使用void func(struct myStruct s)和void func(myStruct s)之间的区别是什么?

时间:2014-04-09 14:13:32

标签: c++

我总是看到人们这样使用它:

struct myStruct{
 ...
};

void func(struct myStruct s){
 ...
}

但我这样使用它,省略了“struct”

void func(myStruct s){
 ...
}

它仍然有效,所以有区别吗?

2 个答案:

答案 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

是对的。