C:运行时的编译器信息

Suu*_*aku 8 c compiler-construction

有没有办法打印编译器的名称和用于编译程序的版本,如:

printf("This is compiled with %s version %s\n", COMPILER, COMPILER_VERSION);
Run Code Online (Sandbox Code Playgroud)

Vit*_* Py 9

您可以使用预处理器执行此操作:

参考:http://predef.sourceforge.net/precomp.html

对于gcc:

#if defined(__GNUC__)
# if defined(__GNUC_PATCHLEVEL__)
#  define __GNUC_VERSION__ (__GNUC__ * 10000 \
                            + __GNUC_MINOR__ * 100 \
                            + __GNUC_PATCHLEVEL__)
# else
#  define __GNUC_VERSION__ (__GNUC__ * 10000 \
                            + __GNUC_MINOR__ * 100)
# endif
#endif
Run Code Online (Sandbox Code Playgroud)

对于MSVC,只需使用:

_MSC_FULL_VER
Run Code Online (Sandbox Code Playgroud)