Compiler Warning (level 4) C4668
The latest version of this topic can be found at Compiler Warning (level 4) C4668.
symbol' is not defined as a preprocessor macro, replacing with '0' for 'directives'
A symbol that was not defined was used with a preprocessor directive. The symbol will evaluate to false. To define a symbol, you can use either the #define directive or /D compiler option.
This warning is off by default. See Compiler Warnings That Are Off by Default for more information.
Example
The following sample generates C4668:
// C4668.cpp
// compile with: /W4
#include <stdio.h>
#pragma warning (default : 4668) // turn warning on
int main()
{
#if q // C4668, q is not defined
printf_s("defined");
#else
printf_s("undefined");
#endif
}