c - 定义一个尚未定义的枚举类型的变量
问题描述
如果谈到结构和联合,我可以在函数范围之外定义这些类型之一的变量,而这些类型本身只被声明并且稍后要定义:
struct my_struct;
struct my_struct variable;
struct my_struct { int field_1; };
我使用clang
和gcc
编译器,在这两种情况下,程序都是无警告地编译的。
但是,如果我尝试使用枚举类型,它只适用于clang
:
enum my_enum;
enum my_enum variable;
enum my_enum {CONST};
虽然gcc
抛出错误storage size of 'variable' is not known。
我想知道,为什么会这样?C 中的枚举类型有什么特别之处吗?
解决方案
推荐阅读
- firebase - Flutter/Firebase - 列表
没有实例 getter 'documents' - docker - Docker 容器引擎启动失败
- jenkins - 找不到詹金斯参数构建
- android - Android - 检测用户的操作系统主题是深色还是浅色?
- jquery - jQuery addClass 仅在进程中起作用。hasClass 后不起作用
- java - 使用 jlink 可重现的构建
- git - 如何将分支的最后一次提交移动到其特色分支的第一次提交并更改特色分支的基础
- javascript - React Native:安全文件时仅渲染屏幕?平面列表不显示项目
- python - 使用 Route Python Django 调用简单函数
- react-native - React Native / react-native-reanimated-bottom-sheet / 如何更改工作表后面视图的背景颜色?