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

What's the difference between using void func(struct myStruct s) and void func(myStruct s), if both work the same way?

本文关键字:myStruct void func struct 区别 什么 两者都 方式 工作 如果      更新时间:2023-10-16

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

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

但我用这种方式,省略了"结构"

void func(myStruct s){
 ...
}

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

void func(myStruct s){
 ...
}

它将导致C中的undefined type mystruct错误,除非您使用typedef使mystruct成为数据类型的别名
类似于的typedef语句

typedef struct myStruct myStruct;

将使CCD_ 5成为CCD_
在C++中,两者都能工作。

C++与C兼容,但在声明结构变量时也不需要键入struct(类也是如此)。所以在C++中两个

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

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

是正确的。