假設我有這個前處理器檢查:
#if(-6 & 5)
#error "No 2's complement signed int"
#endif
如果我從二進制補碼機器交叉編譯到一個補碼機器會發生什么。編譯器會使用目標機器的演算法,還是使用編譯機器的演算法?
謝謝
uj5u.com熱心網友回復:
C 2018 6.10.1 4 說,用于評估#if和#elif指令中的運算式:
... 出于此令牌轉換和評估的目的,所有有符號整數型別和所有無符號整數型別的行為就好像它們分別具有與標頭中定義的型別相同的
intmax_t表示uintmax_t形式<stdint.h>……
這些型別當然是在程式執行期間使用的,因此它們的行為是執行環境的行為。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/468816.html
