使用複數時出現:expected initializer before ‘**’解決辦法
阿新 • • 發佈:2019-01-26
程式碼學渣學習使用複數的時候,按照教程編寫如下程式碼:
#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; }然後就執行出來啦!