How #if 0 && defined(_LP64) be true?

c, c++, c-preprocessor, macros, typedef

Solution

It will never be true. It's likely that `_LP64` used to be relevant, but it stopped being so, and to comment out all the related code, the programmer anded in a 0.

Problem

From the header file ncurses.h, what is the use of `#if` as I think `#if 0` will always return false and control will always go the `#else` part? ``` #if 0 && defined(_LP64) typedef unsigned chtype; typedef unsigned mmask_t; #else typedef unsigned long chtype; typedef unsigned long mmask_t; #endif ```

Original source