我有一个以下列方式定义的自定义结构
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
实际上不是编译时解析常量的事实并不明显。