gcc编译器__SIZE_TYPE__

我很好奇由gcc编译器预定义的变量__SIZE_TYPE__

假设我在C中编码如下句子

 typedef __SIZE_TYPE__ size_t; 

当我使用另一个不包括gcc的C编译器时,是否有可能发生错误? 所有C编译器都有变量__SIZE_TYPE__吗?

是的,只要您使用带双下划线的任何标识符,就有可能发生错误。 参见C标准7.1.3:

所有以下划线开头的标识符以及大写字母或另一个下划线始终保留用于任何用途。

至于__SIZE_TYPE__ ,它显然是一个gcc标识符。 我不认为任何其他编译器使用它,但没有保证。 即使出于完全不同的目的,另一个编译器完全可以自由地使用相同的标识符。