Je comprends comment utiliser une directive de préprocesseur comme celle-ci:
#if SOME_VARIABLE
// Do something
#else
// Do something else
#endif
Mais que faire si je veux seulement faire quelque chose SI PAS QUELQUES_VARIABLES.
Évidemment, je pouvais toujours faire ça:
#if SOME_VARIABLE
#else
// Do something else
#endif
. . . laissant le vide, mais y a-t-il un moyen de faire:
#if not SOME_VARIABLE
// Do something
#endif
La documentation Apple ici ne le suggère pas, mais cela semble être un besoin très basique.
Fondamentalement, je veux faire l'équivalent du préprocesseur:
if(!SOME_VARIABLE)(
{
// Do Something
}
tu pourrais essayer:
#if !(SOME_VARIABLE)
// Do something
#endif
Essayez-vous de vérifier si quelque chose est défini ou non? Si oui, vous pouvez essayer:
#ifndef SOME_VARIABLE
ou
#if !defined(SOME_VARIABLE)
La Apple ( If - Le préprocesseur C ) est correcte et c'est ainsi que les instructions du préprocesseur C ont été depuis la nuit des temps. même documentation, tout ce que vous pouvez faire est de créer une expression qui évalue à zéro ou à une valeur non nulle et l'utiliser.
Les réponses de Meccan sont correctes comme TARGET_IPHONE_SIMULATOR
est défini comme TRUE
ou FALSE
selon la plateforme, donc l'expression sera évaluée à zéro ou à un montant différent de zéro.
En général, ces macros (#if
etc) sont utilisés pour inclure ou exclure des éléments selon qu'un symbole est défini ou non. Pour ce cas d'utilisation, le préprocesseur a #ifdef
et #ifndef
qui couvre ce qui a été historiquement accepté comme les cas les plus importants.
Étant donné également que le sujet de ces instructions ne peut être que d'autres symboles définis par le pré-processeur (via #define
) alors cette limitation est raisonnable.