【发布时间】:2011-10-25 17:21:28
【问题描述】:
C 或 C++ 编译器(例如 gcc)如何遵守 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?
}
【问题讨论】:
-
跟踪所有关于变量的编译时信息的方式是一样的?
-
这是在编译时通过类型系统完成的。
-
您的评论应为“赋值给只读变量”。顺便说一句,您认为编译器如何知道它的整数?
-
为什么不去看看像clang这样的免费编译器的源代码呢?