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

C++ 什么';如果两者的工作方式相同,那么使用void func(struct myStruct s)和void func(myStruct s)的区别是什么?,c++,C++,我总是看到人们这样使用它: struct myStruct{ ... }; void func(struct myStruct s){ ... } 但是我这样使用它,省略了“struct” 它仍然有效,所以有区别吗 void func(myStruct s){ ... } 除非您使用typedef使mystruct成为数据类型的别名,否则它将导致C中的undefined type mystruct错误。 一个typedef语句,如 typedef struct myStruct my

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

struct myStruct{
 ...
};

void func(struct myStruct s){
 ...
}
但是我这样使用它,省略了“struct”

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

void func(myStruct s){
 ...
}
除非您使用
typedef
使
mystruct
成为数据类型的别名,否则它将导致C中的
undefined type mystruct
错误。
一个
typedef
语句,如

typedef struct myStruct myStruct;
将使
myStruct
成为
struct myStruct
的别名,因此两者相同。

在C++中,两者都是有效的。

< P> C++与C兼容,但在声明StULTE变量(同样是类)时,也不需要键入<代码>结构> /COD>。 所以C++中的

void func(struct myStruct s); //compatibility with C


是正确的。< /P>是C还是C++?第二个是合法的C++,而不是C。如果它是代码> C++ <代码>,必须有<代码> TyPufFraseMyStultMyStult。谢谢

void func(struct myStruct s); //compatibility with C
void func(myStruct s); //C++ like declaration