我有一段代码,它挑战了我对C语言的所有知识。
这是代码:
int main(void){
unsigned long long int massage ;
scanf("%llX", &massage); //input: 0x1234567890abcdef
printf("%llX", massage);
return 0;
}
在我的 "64位-Corei5-Fedora-GCC" 上,它输出我所输入的内容。但是在我的朋友的系统上(32位,MS XP,MinGW),它输出 90ABCDEF
。我不明白为什么,有人知道吗?
顺便说一下:unsigned long long int
的 sizeof
在他的系统上是8。
printf
和scanf
格式。应该可以在编译器的文档中找到相关信息。 - Daniel Fischer