#ifdef och #ifndef direktiv (C/C++)

Direktiven #ifdef och #ifndef förprocessorerna har samma effekt som #if direktivet när det används med operatorn defined .

Syntax

#ifdef identifier
#ifndef identifier

Dessa direktiv motsvarar:

#if defined identifier
#if !defined identifier

Remarks

Du kan använda direktiven #ifdef och #ifndef var som helst #if kan användas. -instruktionen #ifdefidentifier motsvarar #if 1 när identifier har definierats. Det motsvarar #if 0 när identifier som inte har definierats eller har definierats #undef av direktivet. Dessa direktiv kontrollerar endast förekomsten eller frånvaron av identifierare som definierats med #define, inte för identifierare som deklarerats i C- eller C++-källkoden.

Dessa direktiv tillhandahålls endast för kompatibilitet med tidigare versioner av språket. Det defined(identifier) konstanta uttryck som används med #if direktivet är att föredra.

Direktivet #ifndef kontrollerar motsatsen till det villkor som kontrolleras av #ifdef. Om identifieraren inte har definierats, eller om dess definition har tagits bort med #undef, är villkoret sant (nonzero). Annars är villkoret falskt (0).

Microsoft-specifik

Identifieraren kan skickas från kommandoraden med hjälp av alternativet /D . Upp till 30 makron kan anges med /D.

Direktivet #ifdef är användbart för att kontrollera om en definition finns, eftersom en definition kan skickas från kommandoraden. Ett exempel:

// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif

Avsluta Microsoft Specifik

Se även

Direktiv för förprocessorer