som*_*guy 2 c++ types complex-numbers
我知道数学世界中虚构和复杂的数字是什么,但在C++中,复杂和虚构的数据类型是什么.另外,我看到了_Imaginary和_Complex等数据类型.有什么区别,什么是复杂和虚构的数据类型?
_Imaginary并且_Complex是用于定义虚构和复杂浮点变量类型的C99语言标准中的关键字; 它们不是C++语言的一部分.他们不是在自己和数据类型-它们修改float,double和long double类型.例如:
float _Imaginary x; // imaginary 32-bit number
double _Complex y; // complex 64-bit number
long double _Complex z; // complex 80-bit number
Run Code Online (Sandbox Code Playgroud)
_Imaginary值大多等于常规实数值,除非您添加具有虚数值的实数,否则您将获得一个_Complex值.
头文件<complex.h>定义了宏imaginary如_Imaginary和complex作为_Complex,以及I如任一_Complex_I或_Imaginary_I(虚数单位).这样传统的C程序就可以使用complex和imaginary作为标识符; 新程序应该使用complex而imaginary不是_Complex和_Imaginary.请注意,实现保留以下划线后跟大写字母开头的标识符,因此遗留代码永远不应使用_Complex或_Imaginary.
C++,而另一方面,不使用此,而是有模板类型std::complex<float>,std::complex<double>以及std::complex<long double>处理复杂的数字.这些类的功能与C99类型非常相似,但不可互换.