__noop
L’intrinsèque spécifique à __noop
Microsoft spécifie qu’une fonction doit être ignorée. La liste d’arguments est analysée, mais aucun code n’est généré pour les arguments. Le compilateur considère les arguments comme référencés à des fins d’avertissement du compilateur C4100 et d’analyse similaire. L’intrinsèque __noop
est destinée à être utilisée dans les fonctions de débogage globales qui acceptent un nombre variable d’arguments.
Le compilateur convertit l’intrinsèque en 0 au moment de la __noop
compilation.
Exemple
Le code suivant montre comment utiliser __noop
.
// compiler_intrinsics__noop.cpp
// compile using: cl /EHsc /W4 compiler_intrinsics__noop.cpp
// compile with or without /DDEBUG
#include <stdio.h>
#if DEBUG
#define PRINT printf_s
#else
#define PRINT __noop
#endif
#define IGNORE(x) { __noop(x); }
int main(int argv, char ** argc)
{
IGNORE(argv);
IGNORE(argc);
PRINT("\nDEBUG is defined\n");
}