Ich habe auf ein Stück Code arbeiten, die ein übersehen derp in sich hatte:Wie undefinierte Präprozessor-Makro mit gcc zu fangen?
#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
#define MAX_N_LENGTH
/*function prototypes*/
int main(){
...
}
Es sollte mit dem Kontext zu erkennen, entfernt werden einfach: #define MAX_N_LENGTH
#define MAX_N_LENGTH 9
gelesen haben sollte. Ich habe keine Ahnung, wohin diese nachlaufende Konstante gegangen ist.
Da dieses Makro nur an einer Stelle in Form von char buf[ MAX_N_LENGTH + 1]
verwendet wurde, war es extrem schwierig, das Programm aufzuspüren und zu debuggen.
Gibt es eine Möglichkeit, Fehler wie diese mit dem GCC-Compiler zu fangen?
* Bitte vermeiden Sie die Beantwortung der Frage in Kommentaren. * – user1717828
'char buf [MAX_N_LENGTH + 1]' wird als 'char buf [+1]' erweitert, das ist gültig und 'gcc' Warnt nicht vor gültigem Code. –