Dyrektywa preprocesora "#define wyraz ciąg_znakow_zastepujących" , problem kompilacji.
Ostatnio zmodyfikowano 2015-03-15 00:08
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 |
|
pekfos |
» 2015-03-14 23:39:39 DZIESIEC to 10;, a nie 10. Średnik też się wlicza. |
|
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 |
|
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. |
|
« 1 » |