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