程式設計時遇到此類報錯
error: aggregate value used where an integer was expected
printf("t1 = %d\n",(unsigned char)t1);
原因是:
c語言的型別強制轉換只有在數量型別之間才能進行轉換,結構型別(包括 union,struct)不是數量型別(scalar type),無法進行強制轉換;
數量型別包括算術型別和指標型別,算術型別由包括整數型別和浮點型別。
可以用union來代替資料轉換
我一般用union代替型別轉換
union bits;
}
c語言強制轉換
type 其中,type為型別描述符,如int,float等。為表示式。經強制型別轉換運算子運算後,返回乙個具有type型別的數值,這種強制型別轉換操作並不改變運算元本身,運算後運算元本身未改變,例如 int nvar 0xab65 char cchar char nvar 上述強制型別轉換的結果是...
c語言的強制轉換
type 其中,type為型別描述符,如int,float等。為表示式。經強制型別轉換運算子運算後,返回乙個具有type型別的數值,這種強制型別轉換操作並不改變運算元本身,運算後運算元本身未改變,例如 int nvar 0xab65 char cchar char nvar 上述強制型別轉換的結果是...
c語言指標的強制轉換
在c語言中經常看到以下類似的 int x 1 char x 這樣的形式的 這個裡面就涉及乙個型別轉換的問題。以下是在vc6.0中除錯的結果 int main int argc,char agrv 輸出 有些人可能會對printf char num 1 p n char num 1 輸出的結果感到不可...