Visual Studio 2010 (C++): unterdrücken, C4706 Warnung vorübergehend

Beim kompilieren die folgende C++ - Quelldatei in Visual Studio 2010 mit warning level /W4 aktiviert

#include <cstdio>  //for printf
#include <cstring> //for strcmp

char str0[] = "Hello";
char str1[] = "World";

int main()
{
    int result;

    if (result = strcmp(str0, str1)) //line 11
    {
        printf("Strings are different\n");
    }
}

erhalten Sie die folgende Warnung

Warnung C4706: Zuordnung innerhalb der bedingte Ausdruck

für die Linie 11.

Will ich um diese Warnung zu unterdrücken, genau an dieser Stelle. Also bemühte ich Google und fand diese Seite: http://msdn.microsoft.com/en-us/library/2c8f766e(v=VS.100).aspx

Also änderte ich den code, um das folgende - in der Hoffnung dies würde das problem lösen:

#include <cstdio>  //for printf
#include <cstring> //for strcmp

char str0[] = "Hello";
char str1[] = "World";

int main()
{
    int result;

#pragma warning(push)
#pragma warning(disable : 4706)
    if (result = strcmp(str0, str1))
#pragma warning(pop)
    {
        printf("Strings are different\n");
    }
}

Es hat nicht geholfen.

Diese Variante hat auch nicht geholfen:

#include <cstdio>  //for printf
#include <cstring> //for strcmp

char str0[] = "Hello";
char str1[] = "World";

int main()
{
    int result;

#pragma warning(push)
#pragma warning(disable : 4706)
    if (result = strcmp(str0, str1))
    {
#pragma warning(pop)
        printf("Strings are different\n");
    }
}

Zu vermeiden, eine weitere Anfrage: ich reinigte die Lösung vor jeder Zusammenstellung. Also ist das wohl nicht der Fehler.

So zum Schluss: wie unterdrücke ich die C4706 genau an diesem Ort?

Bearbeiten ja, das umschreiben ist möglich - aber ich möchte wirklich wissen, warum Sie die Weise, die ich versuche zu unterdrücken der Warnung (dokumentiert ist, offiziell auf der MSDN-Website) funktioniert nicht - wo ist der Fehler???

InformationsquelleAutor Nubok | 2011-08-08
Schreibe einen Kommentar