Trick of the Day : How to resolve « Unreferenced formal parameter » warning ? 1


Hi !

If you compile your project in Warning Level 4 /W4 (Project > Properties > C/C++ > General > Warning Level : Level4 (/W4) in Visual Studio), you have probably seen this warning :

Warning 2 warning C4100: ‘var’ : unreferenced formal parameter

You think your code hasn’t error (like unused stack variable for example), and you don’t know why this warning is here ? It might be some unused function parameters.

Example :

void callAWarning(int a)
{
    //some stuff without a variable
}

And when you compile :
Warning 2 warning C4100: 'a' : unreferenced formal parameter

Now how to resolve this warning ?
Simply by using the macro UNREFERENCED_PARAMETER().

void callAWarning(int a)
{
    UNREFERENCED_PARAMETER ( a );
    //some stuff without a variable
}

PS: If you have the error : « Error 2 error C3861: ‘UNREFERENCED_PARAMETER’: identifier not found« , just add this #define into your project :

#define UNREFERENCED_PARAMETER( P )       (void)(P)

PS2 : The default warning level in Visual Studio is Warning Level 3, but I recommend you to use Warning Level 4 for your projects, because it’s the more strict compilation level and allow you to track any mistakes, as MSDN says :

For a new project, it may be best to use /W4 in all compilations. This will ensure the fewest possible hard-to-find code defects.

Source : MSDN | DELL


A propos de Jérémy Levallois

Je suis docteur en informatique graphique, et je travaille actuellement en temps qu'ingénieur de recherche au LIRIS (Université de Lyon). Ce blog traite de l'actualité en informatique, dans les jeux vidéo, et dans la recherche en informatique graphique, tout ce qui ne passe pas en 140 caractères sur mon twitter @Karganys


Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Commentaire sur “Trick of the Day : How to resolve « Unreferenced formal parameter » warning ?