歡迎來到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