2016-04-15 9 views
1

Der Titel sagt alles. Es weißWarum kennt der Visual Studio 2010-Compiler nicht __func__?

  • __FUNCTION__: nackt Name Funktion
  • __FUNCSIG__: vollständiger Name der Funktion (mit Rückgabetyp und Parameter)
  • __FUNCDNAME__: verstümmelten Name Funktion

aber nicht __func__ obwohl es ist part of the C99 standard. Ich möchte, dass mein Code plattformunabhängig ist. Daher zögere ich, eines der oben genannten zu verwenden. Hast du irgendeinen Ratschlag? Vielen Dank!

+1

Microsoft hat erst vor kurzem angefangen (teilweise) unterstützt C99 - Sie müssen auf VS 2015 zu aktualisieren. –

+1

Es funktioniert ganz gut in VS2015. Wenn Ihre VS-Version alt ist und VS2010 sicher geriatrisch in gcc-Jahren ist, dann können Sie nicht auf die C99-Konformität zählen. Cross-Plattform-Code ist immer gespickt mit #if, Sie brauchen nur ein anderes zu überprüfen "_MSC_VER" und "#define __func__ __FUNCTION__". Oder update, du musst früher oder später besser früher machen. –

Antwort

2

Die Unterstützung von Microsofts C99 war im besten Fall immer ziemlich skizzenhaft.

Nach dieser predefined macro Liste auf der Microsoft-Website wird es in Visual Studio 2015 unterstützt. Es sieht aus wie die früheste Version, die es unterstützt wurde Visual Studio 2013, so dass Sie wahrscheinlich aktualisieren müssen, wenn Sie wirklich benötigen Makro.

Verwandte Themen