【发布时间】:2013-04-17 11:48:54
【问题描述】:
在下面的例子中,我得到一个编译错误
int main() {
int x = 10; // guess this is runtime initialisation
static int y = x; //guess this is loadtime initialisation
printf("x = %d, y = %d", x, y);
}
错误:
error: initializer element is not constant
我的理解是,这与静态和全局成员相对于自动变量的初始化方式有关。 我想知道加载时间、运行时和编译时初始化之间的区别我还想知道存储在数据部分和堆栈中的元素值及其对初始化的影响。
【问题讨论】:
-
我认为加载时间和编译时间是一样的。至少从两者都发生在运行时间之前的角度来看。
-
您应该在提问之前仔细查看您的问题,因为它们可能已经被问及并得到了回答。输入相关关键字(
[c]、static、initialize这里),也可以使用 google。
标签: c compiler-errors initialization runtime load-time