最近因为项目需要,需要写一段复数计算的程序,项目是用C语言写的,最初想的是自己定义一个复数类型,包含实部虚部,但是完成基本运算就麻烦些,不想使用C++的话可以直接进行操作符重载,这样计算的算法是可以通用的。后来在网上查找了一下才发现,原来C99 中已经引入了两个关键字 _Complex和 _Imaginary来支持复数类型,增加了如下几种类型
- float _Complex
- double _Complex
- long double _Complex
- float _Imaginary
- double _Imaginary
- long double _Imaginary
使用时需要包含<complex.h>
定义复数变量时,可以如此:
double _Complex v1=3.1+5*I; double _Complex v2=3.2+5*_Complex_I; float _Complex v3=4.6f+12.0IF; //必须先写i,后写f