__WORDSIZE在编译中的作用

以下是/usr/include/x86_64-linux-gnu/gnu/stubs-32.h文件的内容:

#include <bits/wordsize.h> #if __WORDSIZE == 32 # include <gnu/stubs-32.h> #elif __WORDSIZE == 64 # include <gnu/stubs-64.h> #else # error "unexpected value for __WORDSIZE macro" #endif 

我在64位机器上,所以结果

 #include<stdio.h> main() { printf("Word size : %d\n",__WORDSIZE); } 

 Word size : 64 

那么这里是一个问题,系统variables__WORDSIZE的作用是什么? 我正在开发一个32位应用程序(使用mingw 32位编译器),由于我的__WORDSIZE是64位,文件/usr/include/x86_64-linux-gnu/gnu/stubs-32.h最终导致包括/usr/include/x86_64-linux-gnu/gnu/stubs-64.h 。 我对这部分感到困惑。 这个行为的后果是什么? 这是正常的,如果不是如何强行包含/usr/include/x86_64-linux-gnu/gnu/stubs-32.h

先谢谢你。

Solutions Collecting From Web of "__WORDSIZE在编译中的作用"