c - "complex"宏如何修改C中的 "double"和 "float"类型?

标签 c

为了做出声明,预处理器/编译器发生了什么魔法:

#include <complex.h>
double complex foo;

解析为复杂 double foo 的声明?

更具体地说,我如何模仿这个功能来创建,比方说,一个 rabbit 类型,这样我就可以 #include "rabbit.h" 然后当我声明:

 double rabbit bar;

bar 被声明为我选择的类型?

最佳答案

从 C99 开始,_Complex是关键字,是核心语言的一部分。从语法上讲,它是一个类型说明符,例如longunsigned .它可以与任何 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/

相关文章:

特定点的颜色 - ncurses

c - 小写<-->大写函数未按计划运行

c - 需要帮助理解指针算术以及如何访问信息

c - 在 Win32 API 中以编程方式将 PNG 设置为图片控件

c - 谁写头文件

c - 在 C 中打印 long int 值

c - 关于链表的问题

c - 循环初始化变量未正确分配

c - 响应某些命令的 Sketch 是如何完成的?

c函数链接可能吗?