次のコードは、Cで正常にコンパイルおよび実行されます(少なくとも'gcc -std = gnu99'に従って)が、C ++でのコンパイルに失敗し、「5行目:エラー:「double」を「doublecomplex」に変換できません」初期化」。誰かが理由を知っていますか?
#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の複素数を使用する必要があります。これは、与えられたレガシーコードが処理を行う方法だからです。あなたが助けることができればありがとう!