Ну, то, что вы делаете, на самом деле нестандартно. Во-первых, директива "#warning" или "#warn" не является стандартной. Во-вторых, при использовании препроцессора строка должна начинаться с символа фунта без пробелов:
#ifdef BLAH1
# define BLAH2 // OK, because pound is at the very left.
#endif
#ifdef BLAH3
#define BLAH4 // Works on many compilers, but is non-standard.
#endif
Поскольку вы уже используете нестандартное расширение, вам нужно найти документацию по конкретному препроцессору / компилятору, который вы используете, чтобы увидеть, что в нем говорится о "#warning".