Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dyrektywa preprocesora "#define wyraz ciąg_znakow_zastepujących" , problem kompilacji.

Ostatnio zmodyfikowano 2015-03-15 00:08
Autor Wiadomość
erde
Temat założony przez niniejszego użytkownika
Dyrektywa preprocesora "#define wyraz ciąg_znakow_zastepujących" , problem kompilacji.
» 2015-03-14 23:37:44
Witam serdecznie,

uczę się programowania w c++ i natknąłem się na takie oto dwa nie duże problemy.( w zasadzie jeden w dwóch przykładach )

Nie chce ich jednak po prostu rozwiązać na wyminięcie a chciałbym poznać dokładną naturę tych sytuacji.

       
        const int trzy = 3;
#define DZIESIEC 10;

double s1 = trzy/DZIESIEC;
double s2 = DZIESIEC + trzy;
1 double s3 = DZIESIEC/ trzy;

2 cout<<DZIESIEC<<endl<<s2<<endl<<s1;


1[Error] expected primary-expression before '/' token
2[Error] expected primary-expression before '<<' token.

Jeśli chodzi o 2, postawienie średnika (;) po "DZIESIEC" i postawienie drugiego couta powoduje znikniecie bledu, ale czemu tak sie dzieje ?

Z tego co wiem dyrektywa #define tylko w najprostszy możliwy sposób "mechanicznie" zamienia wszystkie wyrazy "DZIESIEC" na 10; jednak wstawienie w to miejsce zwykłej 10 nie powoduje błędu.


Z góry dziękuje za pomoc i przepraszam za tak "wysoką" trudność zagadnienia
P-128425
pekfos
» 2015-03-14 23:39:39
DZIESIEC to 10;, a nie 10. Średnik też się wlicza.
P-128427
erde
Temat założony przez niniejszego użytkownika
» 2015-03-15 00:05:49
dzięki wielkie, sry za zawracanie głowy głupotami

serdecznie pozdrawiam i zamykam
P-128436
Kyriet
» 2015-03-15 00:08:02
W tym twoim: ciag_znakow_zastepujacych wraz z dziesiątką powędrował jeszcze średnik. W przypadku dyrektyw nie potrzeba nigdy średnika.
P-128437
« 1 »
  Strona 1 z 1