you really should use the const keyword for constants
#define num(arr) (sizeof(arr) / sizeof(arr))
I have them in the middle of the code because they are to be used together with a class defined there.
There is a bug, at least in 0017 (and not documented as fixed) in how the pre-processor scans the code
Why isn't the class defined in a separate file?
It's easier to send one file than several.
You mean the pre-pre-processor which adds function prototypes?
So as long as I declare functions before they are used, it is possible to have defines anywhere?
No, I mean the preprocessor that looks for # statements.
But isn't that preprocessor a part of the standard c/c++ compiler