El rol de UNREFERENCED_PARAMETER

Role Unreferenced_parameter

Acabo de incorporarme al trabajo, ver el código en la unidad, aunque escrito en lenguaje C, pero varias definiciones de macro, varias #define y #typedef, ver el código para verme dudar de la vida. Una de las definiciones de macros comunes en el código es UNREFERENCED_PARAMETER. Entonces, ¿qué significa esta macrodefinición? ¿Cómo se usa?

UNREFERENCED_PARAMETER es una macro definida en el archivo de encabezado winnt.h:



|_+_|

Consulte la documentación de MSDN, puede ver



UNREFERENCED_PARAMETER se expande al parámetro o expresión pasada. Su propósito es para evitar advertencias del compilador sobre parámetros no referenciados. A muchos programadores, incluido el suyo, les gusta compilar con elnivel de advertencia más alto, Nivel 4 (/ W4).Las advertencias de nivel 4 entran en la categoría de 'cosas que se pueden ignorar con seguridad'. Pequeñas infelicidades que no romperán tu código, aunque pueden hacerte quedar mal.



En otras palabras, el propósito de esta macrodefinición es evitar que el compilador advierta las variables declaradas por algunos usuarios pero nunca utilizadas bajo las condiciones de compilación del nivel de advertencia más alto del Nivel 4: 'El parámetro formal no está referenciado en el cuerpo de la función . '. tal como:

|_+_|

En el código anterior, el parámetro formal de la función func nunca se ha utilizado en el cuerpo de la función, por lo que se generará una advertencia en la compilación de Nivel 4. Hay muchas soluciones en este momento, o use esta variable en el cuerpo de la función, o no es necesario parametrizar toda la función (esto debería ser muy raro), hay una manera de agregar el siguiente código en el cuerpo de la función:

|_+_|

Esto es lo que hace la definición de macro UNREFERENCED_PARAMETER.