mit #ifdef auf konkreten Wert prüfen

Gast #1012531
Lesenswert?

Hallo,

ich habe eine Frage zur Präprozessoranweisung #ifdef. Ich mochte einen 
Teil des quellcodes nur kompilieren, wenn ein define einen bestimmten 
wert hat oder nicht hat

z.B

#ifdef BUFLENGTH != 256

Quellcode;

#endif

Wenn ich es so schreibe bekomme ich allerdings Warnungen

../my_uart_xx4.c:127:18: warning: extra tokens at end of #ifdef 
directive

ist das so, wie ich mir das vorstelle, überhaupt möglich?

Gruß, ALex
#1012547
Lesenswert?

Warum #ifdef? In dem Fall müsste ein einfaches #if her! #ifdef überprüft 
lediglich, ob ein Ausdruck definiert ist.

Syntaktisch korrekt wäre entweder
1
#ifdef BUFLENGTH
2
//...
3
#endif
Das würde aber nicht das machen, was Du vermutlich willst, sondern eben 
nur überprüfen, ob BUFLENGTH bereits definiert ist oder nicht. #ifdef 
ist nur eine Abkürzung für #if defined. Wenn Du eine Bedingung 
überprüfen willst, dann
1
#if BUFLENGTH != 256
2
//...
3
#endif

Und ob Du mit AVRStudio arbeitest oder nicht, spielt dabei keine Rolle.
#1012559
Lesenswert?

A***** F***** wrote:
> Er will ja schauen, ob der Ausdruck definiert ist. So sollte es aber
> klappen:
Woher willst Du das wissen? Aus seinem Posting geht eher das Gegenteil 
hervor! Zitat:
> Ich mochte einen Teil des quellcodes nur kompilieren, wenn ein define
> einen bestimmten wert hat oder nicht hat

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren