Copyright (C) 2000-2012 |
GNU Info (cpp-300.info)DefinedDefined ------- The special operator `defined' is used in `#if' and `#elif' expressions to test whether a certain name is defined as a macro. `defined NAME' and `defined (NAME)' are both expressions whose value is 1 if NAME is defined as a macro at the current point in the program, and 0 otherwise. Thus, `#if defined MACRO' is precisely equivalent to `#ifdef MACRO'. `defined' is useful when you wish to test more than one macro for existence at once. For example, #if defined (__vax__) || defined (__ns16000__) would succeed if either of the names `__vax__' or `__ns16000__' is defined as a macro. Conditionals written like this: #if defined BUFSIZE && BUFSIZE >= 1024 can generally be simplified to just `#if BUFSIZE >= 1024', since if `BUFSIZE' is not defined, it will be interpreted as having the value zero. If the `defined' operator appears as a result of a macro expansion, the C standard says the behavior is undefined. GNU cpp treats it as a genuine `defined' operator and evaluates it normally. It will warn wherever your code uses this feature if you use the command-line option `-pedantic', since other compilers may handle it differently. automatically generated by info2www version 1.2.2.9 |