1. 程式人生 > >warning: right shift count >= width of type

warning: right shift count >= width of type

      linux上編譯mkyaffs2image工具, 出現如下警告:

src/main.c:18: warning: right shift count >= width of type。

     程式碼如下:

int  func(void){

    int file_size_low, file_size_high;

   ...

    stat("./inittab", &s);
    file_size_low = s.st_size;
    file_size_high = s.st_size>>32;  //引起警告的語句

   ...

}

   s.st_size向右移32位,為引起警告?s.st_size是long int型別,在32位的linux系統是32位,而不是64位。右移位數為32%32= 0, 所以file_size_hight = file_size_low = s.st_size。

   在arm中long型別是至少32位, long long int是64位