我已经看过libgcc中定义的一些类型。它们显然都映射到了同一个名为bogus_type
的类型。我找不到它的定义。
#define SItype bogus_type
#define USItype bogus_type
#define DItype bogus_type
#define UDItype bogus_type
#define SFtype bogus_type
#define DFtype bogus_type
这种类型映射到什么?它是有效的类型还是类似于
NULL
? 最佳答案
Here's another example使用的“类型”。
/* Make sure that we don't accidentally use any normal C language built-in
type names in the first part of this file. Instead we want to use *only*
the type names defined above. The following macro definitions insure
that if we *do* accidentally use some normal C language built-in type name,
we will get a syntax error. */
#define char bogus_type
#define short bogus_type
#define int bogus_type
#define long bogus_type
#define unsigned bogus_type
#define float bogus_type
#define double bogus_type
也就是说,这不是一种类型。在程序的某些地方强制使用某些类型的限制是合法的代码破坏程序。如果它着火,编译不应该出现语法错误,因为
bogus_type
不存在。它不是语言中任何“不为人所知”的部分,只是C预处理器的巧妙使用。
关于c - C语言中的bogus_type是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30895120/