看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) linux gcc 問題(Question): long 跟 long long int 的差別 請問一下 我用的是linux 64bit 在網路上看到很多網站都說 long 是4個bytes 而 long long int 是8個 但是我自己用sizeof 印的時候 兩個都跑出8欸@@ 請問一下這是因為我用的是64bit 的機器嗎? 還是說是網站上寫錯了? long 跟 int 跟 long long int 三個的關係是...?? ---------------- 附上code: #include <stdio.h> int main(){ printf("size of long is %d \n",sizeof(long)); printf("size of long long int is %d \n",sizeof(long long int)); printf("size of long int is %d \n",sizeof(long int )); return 0; } output: 都是 8 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.192
akasan:標準只跟你保證下限而已, 要多大看 compiler 實作 06/10 00:02
mingcloud:64bits的lu 通常都是8,我是以自己公司的機器為例 06/10 00:19
loveme00835:<stdint.h> 06/10 00:25
loveme00835:注意一下印 size_t 的 specifier, 一定不是 %d 06/10 00:30
singlovesong:所以long 是 4 bytes 沒錯呴 06/10 00:37
loveme00835:<stdint.h> 看看吧.. 只有裡面的型態可以給你明確大小 06/10 00:40
loveme00835:而且可以做 type-safe IO 06/10 00:41
littleshan:標準只有規定long >= int >= short >= char 06/10 01:28
littleshan:千萬別假設 int 或 long 是 4byte 06/10 01:28