なぜclangは_Imaginary_Iが宣言されていないのですか?
#include <stdio.h>
#include <complex.h>
int main()
{
_Complex double z = 1.0 + _Imaginary_I * 2.0;
return 0;
}
がonlinepubsによるので
error: use of undeclared identifier '_Imaginary_I'.
のコンパイルに失敗し、このファイルには
clang test.c -o test
を実行して、_Imaginary_I
が定義されています。何が起こった?
また、 'double _Complex z = 1.0 + _Imaginary_I * 2.0'は機能しません。 – QuantumDot
'-std = c99'または' -std = c11'フラグでコンパイルします。いくつかのコンパイラはC89モードにデフォルト設定します –