欢迎来到90年代,如何在1990年的const定义中添加2个整数?
我使用的是旧的Mac OS 7.01 API,我需要定义一个带有四个常量数组的“Rect”结构。可悲的是,我总是得到“Rect”定义的“需要不变”的错误。不过,我们正在谈论一个24岁的编译器。
Rect shapeRect = {100, 100, 200, 200}; // Works
const int shapeSize = 10;
int shapeX = 0; // Cannot be const
int shapeY = 0; // Cannot be const
Rect shapeRect = {shapeX - shapeSize, shapeY - shapeSize, shapeX + shapeSize, shapeY + shapeSize }; // Error: "requires constant"
我试着定义多个常量与所有4个值计算,但我仍然在同一行上得到相同的错误。
const shapeRectT = shapeX - shapeSize;
...
Rect shapeRect - {shapeRectT, ...};
我的猜测是shapeRectT常量不是常量?我是C语言的初学者,但我相信这个问题可能很容易修复,但这是一个旧的编译器,而且事情可能会有所不同,我不知道新的C标准是否改变了这个东西。
编辑:我发现这方面的文档API(QuickDraw的):https://developer.apple.com/legacy/library/documentation/mac/pdf/ImagingWithQuickDraw.pdf
即使在C11中,struct R z的初始化仍然无效。 – mafso 2014-11-09 01:54:30