I was writing some test code in C. By mistake I had inserted a ; after a #define, which gave me errors. Why is a semicolon not req
;
#define
#define is a preprocessor directive, not a statement or declaration as defined by the C grammar (both of those are required to end with a semicolon). The rules for the syntax of each one are different.