PetscCompl#
Expands to the integer complement of its argument
Synopsis#
#include <petscmacros.h>
int PetscCompl(b)
No Fortran Support
Input Parameter#
b - Preprocessor variable, must expand to either integer literal 0 or 1
Output Parameter#
<return- value> - Either integer literal 0 or 1
Notes#
Expands to integer literal 0 if b expands to 1, or integer literal 1 if b expands to 0. Behaviour is undefined if b expands to anything else. PetscCompl() will expand its argument before returning the complement.
This macro can be useful for negating PetscDefined()
inside macros e.g.
#define PETSC_DONT_HAVE_FOO PetscCompl(PetscDefined(HAVE_FOO))
Example usage#
#define MY_VAR 1
PetscCompl(MY_VAR) -> 0
#undef MY_VAR
#define MY_VAR 0
PetscCompl(MY_VAR) -> 1
See Also#
PetscConcat()
, PetscDefined()
Level#
beginner
Location#
Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages