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
Because that is how the syntax was decided for the precompiler directives.
Only statements end with a ; in c/c++, #define is a pre-processor directive and not a statement.