为了做出声明,预处理器/编译器发生了什么魔法:
#include <complex.h>
double complex foo;
解析为复杂 double foo
的声明?
更具体地说,我如何模仿这个功能来创建,比方说,一个 rabbit
类型,这样我就可以 #include "rabbit.h"
然后当我声明:
double rabbit bar;
bar
被声明为我选择的类型?
最佳答案
从 C99 开始,_Complex
是关键字,是核心语言的一部分。从语法上讲,它是一个类型说明符,例如long
或 unsigned
.它可以与任何 float
一起使用, double
, 或 long double
.
因此 _Complex double
是一种内置于语言中的类型。
标准标题<complex.h>
定义 complex
作为扩展为 _Complex
的宏.这只是为了方便。关键字的拼写为 _Complex
避免与有效的 C99 之前的代码发生冲突;该宏可用于启用更常见的术语 complex
对于复杂类型。
(C11 标准使复杂类型成为可选的。)
没有用于定义您自己的类型说明符的语言机制。
关于c - "complex"宏如何修改C中的 "double"和 "float"类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29265246/