【发布时间】:2012-12-14 10:34:27
【问题描述】:
我在某处读到整数常量表达式包含整数常量,例如:
(5 + 5) //integer constant expression
这是我见过的唯一例子。
现在,从标准中说:
(C99 6.6/6) 整数常量表达式应具有整数类型 并且只能有整数常量、枚举的操作数 常量、字符常量、sizeof 表达式,其结果为 整数常量和立即数的浮点常量 强制转换的操作数。整数常量表达式中的强制转换运算符 只能将算术类型转换为整数类型,除了作为部分 sizeof 运算符的操作数。
那么,如果我是对的,下面的所有这些整数表达式都是吗?
int i; float f = 3.14f;
i = 42;
i = f;
i = (int)(5/3.14f);
【问题讨论】: