我想做一些类似的事情:
#ifdef GCC
#define GetFunctionName() string("My function name is ") + __PRETTY_FUNCTION__;
#endif
因为我想使用__PRETTY_FUNCTION__
,据我所知只有GNU支持,所以我需要检测我是否在为g++和MinGW编译,我该怎么做?我猜我需要知道的只是编译器的预处理器定义,就像我为微软所做的那样:
#ifdef WIN32
#define LogFuncBegin() gLogger.FuncBegin( __FUNCTION__ );
#define LogFuncEndSuccess() gLogger.FuncEndSuccess( __FUNCTION__ );
#endif
如何在C预处理器中检测g和MinGW?
2条答案
按热度按时间gmxoilav1#
您可以使用:
对于其他宏,您可能会对this page感兴趣,它显示了其他编译器宏。
9cbw7uwe2#
对于GCC:
对于MinGW:
x86_64-w 64-mingw 32-gcc定义了
__MINGW32__
和__MINGW64__
。