編譯器,C或C++(例如gcc)如何承認const
聲明?「const」是如何實現的?
例如,在以下代碼中,編譯器如何保持跟蹤變量ci
是const
並且無法修改?
int
get_foo() {
return 42;
}
void
test()
{
int i = get_foo();
i += 5;
const int ci = get_foo();
// ci += 7; // compile error: assignment of read-only variable ?ci?
}
跟蹤所有關於var的編譯時信息的相同方式iables? –
它通過類型系統在編譯時完成。 –
您的評論應爲「賦值爲只讀變量」。順便說一句,你如何看待編譯器知道它的整數? – hplbsh