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

warning C4067: unexpected tokens following preprocessor directive

Ostatnio zmodyfikowano 2010-01-12 17:12
Autor Wiadomość
DejaVu
Temat założony przez niniejszego użytkownika
warning C4067: unexpected tokens following preprocessor directive
» 2010-01-11 12:35:50
W programie mam if'a następującego:
C/C++
#if 0x1234!=htons(0x1234) // <= tu rzuca błędem:
// warning C4067: unexpected tokens following preprocessor directive - expected a newline
//... tu jakiś kod
#endif
Pytając się wujka google znalazłem następującą stronę:
http://msdn.microsoft.com/en-us/library/fzk5a1hy(VS.71).aspx

Problem w tym, że nie jestem w stanie ustawić wspomnianej flagi, ze względu na to iż jest deprecated od VC++ 2k5. Ponadto błąd pokazuje się wtedy, gdy w #f'ie występuje funkcja i ten przypadek raczej nie został opisany. Ktoś wie jak to rozwiązać?
P-12888
Elaine
» 2010-01-11 16:39:37
Od kiedy w dyrektywach preprocesora można wywoływać funkcje?
P-12891
DejaVu
Temat założony przez niniejszego użytkownika
» 2010-01-11 17:43:40
A nie można? :P
P-12893
Elaine
» 2010-01-11 19:46:49
Neen*. Preprocesor może przecież działać na kodzie innego języka (i nie wmawiaj mi łaskawie, że tylko teoretyzuję - np. w przypadku Haskella czasami się CPP używa), więc nie zna takiego pojęcia jak funkcje, dla niego istnieją tylko jego makra. W dodatku tu byłoby nawet z wywołaniem funkcji trudniej, bo ona jest zdefiniowana gdzieś w systemowych DLLach - skąd preprocesor miałby wiedzieć co ta funkcja robi?

* po niderlandzku "nie"
P-12895
DejaVu
Temat założony przez niniejszego użytkownika
» 2010-01-11 21:12:46
Twoja odpowiedź nie jest satysfakcjonująca ;p Masz inne rozwiązanie tego problemu tak, aby nie trzeba było ręcznie modyfikować kodu w zależności od architektury na której się kompiluje?
P-12899
Elaine
» 2010-01-11 21:58:24
To twoje pytanie nie jest satysfakcjonujące, a nie moja odpowiedź... Hokus pokus, czary mary, fusy mówią (nie mogłeś walić prosto z mostu z tym pytaniem?), że to i tak trzeba zrobić w runtime - endian na wielu architekturach da się przełączać, a tylko w taki sposób można uzyskać 100% pewność.

Lekcja zadawania pytań: mów co konkretnie chcesz osiągnąć. Jeśli to zrobisz, to będzie łatwiej i tobie, i tym którzy ewentualnie będą chcieli pomóc.
P-12903
DejaVu
Temat założony przez niniejszego użytkownika
» 2010-01-12 08:09:07
Dzięki za Twoje odpowiedzi, temat zamykam. Chciałem mieć rozwiązanie na poziomie preprocesora, ale najwyraźniej nie jesteś w stanie mi pomóc.
P-12911
Patzick
» 2010-01-12 17:11:03
otwieram na chwilę bo f.a.l. chciał coś dodać...
P-12924
« 1 » 2
  Strona 1 z 2 Następna strona