Je voudrais coder dans certaines macros de pré-processeur pour consigner éventuellement des informations. Par exemple, dans le .hMacro de débogage du préprocesseur pour la journalisation facultative
//#define ML_DEBUG(x) (x) // flip this bit to do the error logging
#define ML_DEBUG(x) (1==1) // flip this bit to silence
dans le .m je mets en œuvre comme:
ML_DEBUG(NSLog(@"Class dealloc: %@", [NSString stringWithCString:object_getClassName(self)]));
Le code fonctionne bien comme je l'ai présenté. Cependant, je ne pense pas que mon cas de "ne rien faire" soit aussi léger qu'il pourrait l'être. Je me attendais à écrire:
//#define ML_DEBUG(x) (x) // flip this bit to do the error logging
#define ML_DEBUG(x) (;) // flip this bit to silence
Depuis un point-virgule seul est une déclaration valide objective-c, je pensais cela fonctionnerait, mais le compilateur me dit:
expected expression before ';' token
Ma question est: Est-ce Je choisis l'instruction "ne rien faire" la plus légère, en utilisant 1==1
ou y at-il une manière moins intensive de le faire. Ou peut-être que toute mon approche de la journalisation de débogage temporaire est erronée?