extern const编译器错误:Initialiser元素不是编译时常量

时间:2015-10-28 07:24:44

标签: objective-c c clang

我有一个以下列方式定义的自定义结构

typedef struct {
    CGFloat value;
    CGAffineTransform transform;
} MyStruct;

我的目的是定义一个表示此结构的默认内容的常量。

我尝试使用extern const

执行此操作

*。h file

extern MyStruct const MyStructDefault;

* m file

MyStruct const MyStructDefault = { 0., CGAffineTransformIdentity };

但Xcode指出CGAffineTransformIdentity

旁边的错误
  

Initialiser元素不是编译时常量

我知道我可以在头文件中使用#define或将MyStructDefault()作为一个函数,但我很好奇为什么原始方法不起作用,因为CGAffineTransformIdentity也是之后定义为extern const必须是编译时常量。

更新

这个问题实际上并不是another question的重复,extern const实际上不是编译时解析常量的事实并不明显。

0 个答案:

没有答案
相关问题