Code below yields the output \"yes defined\", \"no defined\" and \"yes\". Why?
#define FOOBAR NO - (BOOL)application:(UIApplication *)application didFinishLa
All identifieres that the preprocessor doesn't know of are replaced with 0 for evaluation in #if directives. If you don't have defined YES and NO both are 0 (and thus equal).
0
#if
YES
NO