2014-04-10 23 views
6

http://blogs.msdn.com/b/vcblog/archive/2013/07/19/c99-library-support-in-visual-studio-2013.aspxDerleme C kodu

C99 desteği görsel stüdyo 2013 eklendi, ama benim "C" kodunda complex.h cant'kullanma.

#include <stdio.h> 
#include <complex.h> 
int main(void) 
{ 
    double complex dc1 = 3 + 2 * I; 
    double complex dc2 = 4 + 5 * I; 
    double complex result; 

    result = dc1 + dc2; 
    printf(" ??? \n", result); 

    return 0; 
} 

Sözdizimi hataları alıyorum.

Düzeltme: Eksik kısım için özür dilerim. durumda herkes yılında

error C2146: syntax error : missing ';' before identifier 'dc1' 
error C2065: 'dc1' : undeclared identifier 
error C2088: '*' : illegal for struct 
error C2086: 'double complex' : redefinition 
error C2146: syntax error : missing ';' before identifier 'dc2' 
error C2065: 'dc2' : undeclared identifier 
error C2088: '*' : illegal for struct 
error C2086: 'double complex' : redefinition 
error C2146: syntax error : missing ';' before identifier 'result' 
error C2065: 'result' : undeclared identifier 
error C2065: 'result' : undeclared identifier 
error C2065: 'dc1' : undeclared identifier 
error C2065: 'dc2' : undeclared identifier 
error C2065: 'result' : undeclared identifier   
IntelliSense: expected a ';' 
IntelliSense: expected a ';' 
IntelliSense: expected a ';' 
IntelliSense: identifier "result" is undefined 
IntelliSense: identifier "dc1" is undefined 
IntelliSense: identifier "dc2" is undefined 
+0

Ve bu sysntax hataları alabilirim? –

+6

Hatalarla ilgili bir soru gönderdiğinizde, soruya gerçek hataları (* complete * ve * unedited *) eklemeniz çok yararlı olacaktır. Lütfen hataları dahil etmek için sorunuzu düzenleyin. –

+3

Görünüşe göre "karmaşık" desteği, blog-postasının bize bildirdiği kadar eksiksiz değildir. –

cevap

7

, değişken bildirim için

_Dcomplex dc1 = {3.0, 2.0};

deneyin bir yıl sonra arıyor.

VS2013'ün "complex.h" üstbilgisine bakmadan, Microsoft'un C karmaşık sayılar için kendi uygulamasına karar verdiğini görüyoruz. Sen,() işlevlerini gerçek() ve imag kullanarak kendi aritmetik operatörler uygulamak gerekecek yani .:

double real_part = real(dc1) + real(dc2); 
double imag_part = imag(dc1) + imag(dc2); 
_Dcomplex result = {real_part, imag_part};