以下代码在 C 中编译并运行得很好(至少根据 'gcc -std=gnu99'),但在 C++ 下编译失败,给出“第 5 行:错误:无法将 'double' 转换为 'double complex ' in初始化”。有人知道为什么吗?
#include "/usr/include/complex.h"
#include <stdio.h>
int main(int argc, char * argv[]) {
double complex a = 3; // ERROR ON THIS LINE
printf("%lf\n", creal(a));
return 0;
}
我意识到在 C++ 中还有另一种处理复数的方法,但我必须在 C++ 中使用 C 复数,因为这就是我得到的遗留代码的作用方式。谢谢,如果你能帮忙!