c库定义了int8\u t
来自stdint.h的以下内容c库定义了int8\u t,c,C,来自stdint.h的以下内容 #ifndef int8_t typedef signed char int8_t; #define int8_t int8_t #define INT8_MIN (-128) #define INT8_MAX (127) #endif \define int8\u t做了什么或定义了什么?它将int8\u t定义为一个宏,可以使用\ifndef int8\u t测试其存在性,大概是为了防止int8\u t被定义两次 我不知道
#ifndef int8_t
typedef signed char int8_t;
#define int8_t int8_t
#define INT8_MIN (-128)
#define INT8_MAX (127)
#endif
\define int8\u t
做了什么或定义了什么?它将int8\u t
定义为一个宏,可以使用\ifndef int8\u t
测试其存在性,大概是为了防止int8\u t
被定义两次
我不知道它为什么这样做。在整个
标题周围使用单个标题更有意义
(在这个答案的前一个版本中,我断言实现是不一致的,因为它将int8_t
定义为一个宏。这样做是不必要的,但不是无效的。引用7.1.3:
具有下列任一文件范围的每个标识符
子条款(包括未来图书馆方向)保留给
用作宏名称和文件范围相同的标识符
名称空间(如果包含其任何关联的标题)
因此,标识符int8\t
保留用作宏,并且允许实现的宏定义。)
这是什么实现?它只是防止相同定义的多个包含(请参阅开头的
\ifndef int8\t
)。