__noop
O intrínseco específico __noop
da Microsoft especifica que uma função deve ser ignorada. A lista de argumentos é analisada, mas nenhum código é gerado para os argumentos. O compilador considera os argumentos como referenciados para fins do aviso do compilador C4100 e análise semelhante. O intrínseco __noop
destina-se ao uso em funções de depuração globais que usam um número variável de argumentos.
O compilador converte o intrínseco __noop
em 0 em tempo de compilação.
Exemplo
O código a seguir mostra como você pode usar __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");
}