Warum sich der Compiler über diese Makrodeklaration beschwert

7

Ich schreibe das folgende Makro für Debug-Bequemlichkeit,

%Vor%

aber gcc beklagt sich wie folgt

%Vor%

Was ist falsch an diesem Code? Vermissen ich hier wichtige Punkte?

    
speedmancs 09.04.2012, 14:14
quelle

3 Antworten

18

Sie können #ifdef s nicht in einer Makrodefinition haben. Sie müssen es umdrehen:

%Vor%     
Oliver Charlesworth 09.04.2012, 14:16
quelle
1

Sie können keine Präprozessordirektive in eine andere Präprozessordirektive einbetten (das #ifdef DEBUG_MODE in der Definition von DEBUG_INFO ). Tun Sie stattdessen etwas wie

%Vor%

(Das ist immer noch nicht ideal; defensive Makrocodierung deutet auf etwas wie

hin) %Vor%

Vielleicht würde eine Funktion inline besser funktionieren.)

    
geekosaur 09.04.2012 14:20
quelle
0

Ich geuss, wenn Sie '\' in Zeile 7 essen, funktioniert das Stück Code.

    
Kevin 09.04.2012 15:53
quelle

Tags und Links