编译器在编译此行时显示错误:
float Data;
unsigned long Valeur;
Data = - (1 << 2 - (Float_t)Valeur) * 2.135;
这是消息:
error: illegal type(s): int '<<' float
我没有找到错误?你能救我吗?
答案 0 :(得分:2)
表达式
- (1 << 2 - (Float_t)Valeur) * 2.135;
被解释为
- (1 << (2 - (Float_t)Valeur)) * 2.135;
且2 - (Float_t)Valeur)
的类型为Float_t
,我假设为float
或类似。你不能换乘浮点数。
答案 1 :(得分:2)
假设非标准Float_t
为typedef
&#39; d为float
或等效,则:
Data = - (1 << 2 - (Float_t)Valeur) * 2.135;
^
|
bad!
是问题所在。以上计算2 - (Float_t) Valeur
,然后使用(浮点!)结果进行移位。也许你的意思是
Data = -((1 << 2) - (Float_t) Valeur) * 2.135;
或者其他什么。很难确定,这是一个非常奇怪的代码。
答案 2 :(得分:2)
Valeur
未初始化使用,<<
的优先级低于-
,可能您正在寻找:
Data = - ((1 << 2) - (Float_t)Valeur) * 2.135;