#ifdef en #ifndef richtlijnen (C/C++)

De #ifdef en #ifndef preprocessor-instructies hebben hetzelfde effect als de #if richtlijn wanneer deze bij de defined operator wordt gebruikt.

Syntax

#ifdef identifier
#ifndef identifier

Deze richtlijnen zijn gelijk aan:

#if defined identifier
#if !defined identifier

Remarks

U kunt de #ifdef en #ifndef instructies overal #if gebruiken. De #ifdefidentifier instructie is gelijk aan #if 1 wanneer identifier deze is gedefinieerd. Het komt overeen #if 0 met wanneer identifier niet is gedefinieerd of niet is gedefinieerd door de #undef richtlijn. Deze richtlijnen controleren alleen op de aanwezigheid of afwezigheid van id's die zijn gedefinieerd met #define, niet voor id's die zijn gedeclareerd in de broncode C of C++.

Deze richtlijnen zijn alleen beschikbaar voor compatibiliteit met eerdere versies van de taal. De defined(identifier) constante expressie die met de richtlijn wordt gebruikt, heeft de #if voorkeur.

De #ifndef richtlijn controleert op het tegenovergestelde van de door de voorwaarde gecontroleerd #ifdef. Als de id niet is gedefinieerd of als de definitie is verwijderd #undef, is de voorwaarde waar (niet-nul). Anders is de voorwaarde onwaar (0).

Microsoft-specifieke

De id kan worden doorgegeven vanaf de opdrachtregel met behulp van de /D optie. U kunt maximaal 30 macro's opgeven met /D.

De #ifdef richtlijn is handig om te controleren of er een definitie bestaat, omdat een definitie kan worden doorgegeven vanaf de opdrachtregel. Voorbeeld:

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

Microsoft-specifieke beƫindigen

Zie ook

Preprocessorrichtlijnen