如果两者都以相同的方式工作,那么使用 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?
我总是看到人们这样使用它:
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
是正确的。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 在c++类上调用void函数
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- 在派生函数中指定void*参数
- C++为什么尽管我调用了void函数,它却不起作用
- 如何从void函数输出字符串
- 我应该使用什么来代替void作为变体中的替代类型之一
- 奇怪的结构&GCC&clang(void*返回类型)
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 引用一个已擦除类型(void*)的指针
- 将尾部调用void(i32,..)位转换为llvm::函数以获取FnAttribute
- 库函数需要一个 std::function<void(void)>,如何传入类函数?
- 如何将指针从一个void函数传递到另一个C++
- 为什么我在使用void函数时得到错误代码C2276
- void*到驱动程序中的UnicodeString
- 为什么在逗号分隔符上下文中将预增量的结果强制转换为void
- 指针没有更新它在void函数内部指向的值
- 从类型 'MyStruct' 转换为类型 'void*' 无效
- 如果两者都以相同的方式工作,那么使用 void func(struct myStruct s) 和 void func(myStruct s) 有什么区别?