深刻解析C說話中常數的數據類型。本站提示廣大學習愛好者:(深刻解析C說話中常數的數據類型)文章只能為提供參考,不一定能成為您想要的結果。以下是深刻解析C說話中常數的數據類型正文
空話不多說,上代碼
//編譯情況:codeblocks+gcc
#include <stdio.h>
#include <stdint.h>
int Fun()
{
uint64_t y;
uint32_t x1, x2;
//y = 3000 * 24000000 / 1000;//常數默許作為32位數據,暫時運算成果也是32位,溢失足誤
//y = (uint64_t)3000 * (uint64_t)24000000 / 1000;//常數強迫轉換為64位,運算准確
y = 3000ULL * 24000000ULL / 1000ULL;//常數應用64位格局,運算准確
printf("0x%llX\n", y);//輸入
x1 = (uint32_t)(y & 0xFFFFFFFF);
x2 = (uint32_t)(y >> 32);
printf("0x%X,0x%X \n", x1, x2);//輸入成果
}
int main()
{
Fun();
}