Je viens de voir ce fil, qui décrit comment ajouter des macros conditionnelles: Conditional value for a #define#define macro conditionnelle pour une fonction - provoquant: « fonction » redéfinie avertissement
mais dans mon cas, je suis en train de définir une fonction dans l'état.
#if TARGET_IPHONE_SIMULATOR
#define doSomething(){\
\\ does something
}\
#else
#define doSomething(){\
\\ does something else
}\
#endif
Cela fonctionne, sauf que je cause compilateur gcc de lancer cet avertissement:
"doSomething" redefined
This is the location of the previous arguments
Y at-il de solution pour aider à se débarrasser des mises en garde?
MISE À JOUR:
donc j'ai essayé, y compris la condition dans ma définition:
#define doSomething(){\
#if TARGET_IPHONE_SIMULATOR
\\ do something
#else
\\ do something else
#endif
}\
mais génère une erreur:
error: '#' is not followed by a macro parameter.
vous oubliez que doSomething est une macro définie. Si j'ai #define doSomething() #if ... cela va casser la macro et vous obtiendrez l'erreur: '#' n'est pas suivi d'un paramètre macro. – Bach