#pragma und #define Problem


#1
Hi,

ich möchte mit einigen #define Anweisungen den Compiler dazu bringen, während der Kompilierung benutzerdefinierte Ausgaben in die Konsole zu schreiben. Damit möchte ich meinen Quelltext mit Kommentaren versehen, z.B. um TO-DO Punkte hervorzuheben.

Der Plan dazu ist folgender:
Ein Makro nimmt einen Text entgegen und erweitert diesen Text um die aktuelle Datei (__FILE__) und die aktuelle Zeilennummer (__LINE__). Anschliessend reicht es den modifizierten Text and #pragma message weiter. #pragma message erledigt dann die Ausgabe in die Konsole. Aus Gründen der Einfachheit habe ich die Textergänzung ausgelassen und nur das einfachste NOTE Makro benutzt.

Code:
// diese beiden Makros werden benötigt, um einen int in Text umzuwandeln
#define STRSTR(x) #x
#define INTSTR(x) STRSTR(x)

// das soll mal das Makro werden
#define NOTE(x) message(x)

// das hier funktioniert
#pragma message (__FILE__ " (" INTSTR(__LINE__) "): " "Bugfix to do" )

// das hier leider nicht
#pragma NOTE ("HELLO")
Der Präprozessor sollte doch NOTE(x) durch message(x) ersetzen, demnach würde aus NOTE ("HELLO") message ("HELLO" ). Damit würde aus der Zeile #pragma NOTE ("HELLO") die Präprozessor Direktive #pragma message ("HELLO"). Nur klappt das leider überhaupt nicht, weder mit dem BCB6 noch mit Codegear2007.

Hat jemand eine Idee?

Gruß,
Guido
 

Neue Beiträge