首页 > 解决方案 > 为什么不能全局定义结构成员?

问题描述

当您定义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;
}

我希望我能够在全局范围内定义结构的成员。

标签: cstruct

解决方案



推荐阅读