1. 程式人生 > >使用複數時出現:expected initializer before ‘**’解決辦法

使用複數時出現:expected initializer before ‘**’解決辦法

程式碼學渣學習使用複數的時候,按照教程編寫如下程式碼:

#include <complex.h>
#include <stdio.h>


int main(void){
	double complex cx = 1.0 + 3.0*I;
	double complex cy = 2.0 - 4.0*I;
	printf("Working with complex numbers:\n Starting values: cx = %.2f%+.2fi cy = %.2f% +.2fi",creal(cx),cimag(cx),creal(cy),cimag(cy));
	return 0;
}

儲存,執行後,出現如下錯誤:

仔細檢查,程式碼並沒有任何錯誤,但是執行總是有錯,百度了之後大多都說是標頭檔案的錯誤。然後開啟<complex.h>標頭檔案檢查,但是學渣根本看不出來哪裡有錯,然後看到標頭檔案裡關於儲存複數的宣告為如下形式:

所以我嘗試把自己程式碼中的complex改成_Complex:

#include <complex.h>
#include <stdio.h>


int main(void){
	double _Complex cx = 1.0 + 3.0*I;
	double _Complex cy = 2.0 - 4.0*I;
	printf("Working with complex numbers:\n Starting values: cx = %.2f%+.2fi cy = %.2f% +.2fi",creal(cx),cimag(cx),creal(cy),cimag(cy));
	return 0;
}然後就執行出來啦!