c - 定义结构的新实例
问题描述
我尝试在一个简单的 C 项目中键入以下代码,但它一直说 MyStruct 是未定义的——除非我struct
在每个之前添加MyStruct
(即struct MyStruct my_struct;
感觉不对?)。
struct MyStruct {
int my_int;
}
int main() {
MyStruct my_struct;
my_struct->my_int = 1;
return 0;
}
解决方案
没错,这就是 C 的工作方式。类型名称是struct MyStruct
(它只是MyStruct
在 C++ 中)。如果您觉得不方便,请创建一个 typedef,例如:
typedef struct MyStruct { ... } MyStruct;
不过,这可能被认为是也可能不是一个好的做法。
另请注意,结构(但不是 typedef)和函数可以具有相同的名称(不带struct
前缀)。sigaction
是一个真实的例子。
推荐阅读
- javascript - 材质对话框返回多个对象
- c# - 当从 C# 编写的服务调用时,Process.Start() 什么也不做
- validation - Spring Test mockMvc 忽略验证
- jquery - 尝试使用 html5 模式添加验证
- javascript - 在javascript中注册一个更改html输入值的事件
- java - 无法在eclipse中创建简单的java restapi
- java - XML 解组到 Java/Kotlin 中的对象
- c# - 如何获取一个 PDF 文件中使用的字体列表并将它们复制到另一个文件?
- reactjs - React native Invariant Violation:元素类型无效:期望字符串(用于内置组件)或类/函数
- java - AES CBC 算法