c - 为什么不能全局定义结构成员?
问题描述
当您定义struct
全局时,为什么不能也全局定义结构成员(除了使用初始化器语法之外)?我从 clang 得到的错误是 system_1 有一个“未知类型名称”。
如果您在函数中定义结构,例如main()
,那么您不会遇到任何问题。
typedef struct Light_System {
int redLightPin;
int yellowLightPin;
int blueLightPin;
} Light_System;
Light_System system_1;
# "Light_System system_1 = {4, 0, 0}" works
system_1.redLightPin = 4; # doesn't work
int main(int argc, char *argv[]) {
# placing everything in here works
# placing just "system_1.redLightPin = 4;" here makes it work.
printf("%d\n", system_1.redLightPin);
return 0;
}
我希望我能够在全局范围内定义结构的成员。
解决方案
推荐阅读
- sql-server - 无法在具有三个主键的两个表之间创建关系
- python-3.x - 为什么我收到“NoneType”对象不可下标错误?
- sql - 删除 SQL Server 中的双重条目
- python - 如何将此 lambda 函数转换为 def 格式?
- android - 有人可以澄清这是泄漏吗?
- javascript - JQuery在浏览器刷新时刷新ajax数据
- javascript - 服务器端处理表分页 - 数据表或任何其他?
- r - 在 r shiny 中创建新变量 = 现有变量 + 用户输入
- vb.net - 如何通过vb.net代码解析数据链接webform。
- java - 尝试将 Java 应用程序连接到 Redshift 数据库时服务器关闭连接