使用gcc编译以下代码。
代码:
EventKit
错误:
我收到如下编译错误
#include <stdio.h>
const int i = 10;
const int n = i+1;
int main() {
printf("%i\n", i);
printf("%i\n", n);
}
使用g ++编译工作得很好并打印10和11。
我使用了gcc 4.9.2
答案 0 :(得分:1)
const
变量可以使用常量值(常量表达式)初始化。
C
在编译时,i + 1
不是常量表达式。
FWIW,甚至
const int n = i;
会给你错误,因为即使声明为const
,i
也不能用作常量表达式作为另一个{{1}的初始化程序}。
const
C++
变量,则它们将作为常量表达式。所以,这是允许的。
答案 1 :(得分:0)
static
个变量
C ++编译器将编译它,因为在C ++中const
限定变量是常量。在C中,const
限定变量不是常量,C编译器会引发错误。