簡體   English   中英

向左移動並在C中以flo​​at進行投射

[英]Shift left and cast with float in C

編譯器在編譯此行時顯示錯誤:

float Data;
unsigned long Valeur;
Data = - (1 << 2 - (Float_t)Valeur) * 2.135;

這是消息:

error: illegal type(s): int '<<' float

我沒有找到錯誤? 你能幫助我嗎?

表達方式

- (1 << 2 - (Float_t)Valeur) * 2.135;

被解釋為

- (1 << (2 - (Float_t)Valeur)) * 2.135;

並且2 - (Float_t)Valeur)Float_t ,我認為它是float或類似的。 您不能移位浮點數。

假設非標准Float_ttypedef “d到float或等同物,這樣的:

Data = - (1 << 2 - (Float_t)Valeur) * 2.135;
                       ^
                       |
                      bad!

是問題。 上面計算了2 - (Float_t) Valeur ,然后使用(floating-point!)結果進行平移。 也許你是說

Data = -((1 << 2) - (Float_t) Valeur) * 2.135;

或者其他的東西。 很難確定,這是很奇怪的代碼。

Valeur未初始化,並且<<優先級低於- ,也許您正在尋找:

Data = - ((1 << 2) - (Float_t)Valeur) * 2.135;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM