標(biāo)題: C語(yǔ)言宏定義問(wèn)題 #define char unsigned char定義后 使用char是無(wú)符號(hào)還是有符號(hào)? [打印本頁(yè)]

作者: 李冬    時(shí)間: 2022-11-4 14:32
標(biāo)題: C語(yǔ)言宏定義問(wèn)題 #define char unsigned char定義后 使用char是無(wú)符號(hào)還是有符號(hào)?
#define char   unsigned  char
這樣定義過(guò)后
使用char 是無(wú)符號(hào)還是有符號(hào)

作者: 13205495918    時(shí)間: 2022-11-4 17:32
ohohohoh,神奇的寫法出現(xiàn)了
作者: 名字不是重點(diǎn)    時(shí)間: 2022-11-4 18:06
哈哈。。。
牙齒咬到后腦勺了。。。
左腳踩右腳上天了。
永動(dòng)機(jī)出現(xiàn)了。
作者: 名字不是重點(diǎn)    時(shí)間: 2022-11-4 18:08
先試試編譯能不能過(guò),再來(lái)發(fā)貼。。沒有試驗(yàn)就沒有發(fā)言權(quán)。
作者: 帥包    時(shí)間: 2022-11-4 18:58
大神的問(wèn)題果然燒腦[em06
  1. #define  char  unsigned  long
  2. int        main (void)
  3. { char a=0;
  4.         a=0x12345678;
  5.         a=a+1;
  6. }
復(fù)制代碼
上面這段代碼是編譯可以通過(guò)的
  1. //#define  char  unsigned  long
  2. int        main (void)
  3. { char a=0;
  4.         a=0x12345678;
  5.         a=a+1;
  6. }
復(fù)制代碼
這段代碼編譯就要報(bào)警告了main.c(6): warning:  #69-D: integer conversion resulted in truncation

說(shuō)明宏定義是有效的,真的可以把unsigned char定義成有符號(hào)的char,各位如果不怕被接盤者打死,以后編程就可以這么干!。。。。。。。。。。。。。。。。

作者: 名字不是重點(diǎn)    時(shí)間: 2022-11-4 19:47
帥包 發(fā)表于 2022-11-4 18:58
大神的問(wèn)題果然燒腦[em06上面這段代碼是編譯可以通過(guò)的
這段代碼編譯就要報(bào)警告了main.c(6): warnin ...

#define char   unsigned  char呢?
作者: 17303806905    時(shí)間: 2022-11-4 21:30
這樣定義不符合語(yǔ)法規(guī)則,編譯通不過(guò)
作者: 溫xyz    時(shí)間: 2022-11-4 22:28
char是關(guān)鍵詞,你不能用關(guān)鍵詞代替另一個(gè)關(guān)鍵詞。你可以
#define uchar   unsigned  char
作者: cnos    時(shí)間: 2022-11-4 23:44
每天一個(gè)挖坑小技巧?
作者:     時(shí)間: 2022-11-5 08:34
#define char   unsigned  char

int main()
{
    char a = 0;
    a = 0xff;
    a = a + 1;
    printf_s("a: %d\n", a);
    system("pause");
}

輸出 a為0;VS2019下編譯通過(guò)
作者: matlab?    時(shí)間: 2022-11-7 10:12
所以到底是有符號(hào)還是無(wú)符號(hào)啊???




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1