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  
}