當前位置:編程學習大全網 - 電腦編程 - 這個是用KEIL寫的、有誰能幫忙解決這個基礎問題、

這個是用KEIL寫的、有誰能幫忙解決這個基礎問題、

首先,這個promotion是跟編譯器相關的。如果妳拿51編譯器來編譯,是不可能得出紅字所示的結論。因為51單片機是八位機,默認數據類型8位。

其次,按照妳列出的紅字,表明妳“期望”這個編譯器默認promote成16位無符號類型,所以左移8位的時候結果相同。

但是按默認promote左移9位就會丟數據了,變成0xFE00(65024)。除非先強制轉換為unsigned long才能確保結果為0x1FE00(130560)。第3行那個966784(0xEC080)真是匪夷所思。

  • 上一篇:makefile裏怎麽表達elseif
  • 下一篇:中國自己的芯片有哪些
  • copyright 2024編程學習大全網