2020年5月3日 星期日

C 語言 - warning: left shift count >= width of type

warning: left shift count >= width of type

    一般來說,就是 shift 的 bit 大於資料型態的 bit 數。但有時使用 unsigned long 仍然會出錯,因為 unsigned long 會依照系統的不同,有時是 32 bit 有時是 64 bit,所以這時用 unsigned long long 較為安全 ( 保證 64 bit )。


參考資料 :
https://stackoverflow.com/questions/4201301/warning-left-shift-count-width-of-type

Related Posts:

  • C 語言 - Linux System Log Linux - System Log     Linux 當事件發生會產生 log,通常會存在 /var/log 底下。優先度如下。     debug     info     notice     warning     err     crit     alert   … Read More
  • C 語言 - 編譯多個含有 main function 的 C code 編譯多個含有 main function 的 C code     理論上是不行,GCC 無法自行繞過某某函式去編譯,通常是給條件去讓編譯器來達到 "只有一個你想要的 main function" 編譯目的。有人會問為什麼會有多個 main function,我想多半是因為想 Debug。 1. 利用 #ifdef other.c #ifdef DEBUG int main () { … Read More
  • C 語言 - static static - Introduction      靜態變數(Static Variable)在電腦編程領域指在程式執行前系統就為之靜態分配(也即在執行時中不再改變分配情況)儲存空間的一類變數。與之相對應的是在執行時只暫時存在的自動變數(即局部變數)與以動態分配方式取得儲存空間的一些物件,其中自動變數的儲存空間在呼叫棧上分配與釋放。 static + 變數        … Read More
  • C 語言 - #define # define - 文本替換 #define Max 10 # define - 定義函式 #define MAX(a,b) ((a) > (b) ? (a) : (b)) #define MINUS(a,b) a - b // 注意這個 a-b 沒加括號很容易出錯 #define MINUS(a,b) (a - b) // Good. # define - 多行定義 #define M… Read More
  • C 語言 - __attribute__((weak)) 使用的情境     假設我們不知道外部是否會提供 foo() 這個 function,若沒有則用自己的 foo()。 extern int func(void); int __attribute__((weak)) func(void) { return 0; } 備註 - 不會在動態函式庫 (.so) 中生效     string.so voi… Read More

0 意見:

張貼留言

Popular Posts