_MSC_VER 是什么意思?
这是微软的预编译控制。
在_MSC_VER较小时,它对一些东西的支持与新版不同 _MSC_VER分解如下: MS:Microsoft(微软)的简写
C:MSC就是Microsoft出的C编译器。
VER:Version(版本)的简写。
全部加在一起就是:Microsoft的C编译器的版本
很多头文件中有 #if _MSC_VER > 1000
#pragma once #endif // _MSC_VER > 1000 _MSC_VER 定义编译器的版本,VC++6.0就是1200
#if _MSC_VER > 1000的意思就是如果编译器版本高于1000(VC++5.0) 关于编译器的版本信息可在command line里敲cl /?得到.示例:
C:\Documents and Settings\Administrator>cl /?
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. C/C++ COMPILER OPTIONS
-OPTIMIZATION-
/O1 minimize space /Op[-] improve floating-pt consistency
/O2 maximize speed /Os favor code space /Oa assume no aliasing /Ot favor code speed /Ob<n> inline expansion (default n=0) /Ow assume cross-function aliasing /Od disable optimizations (default) /Ox maximum opts. (/Ogityb1 /Gs) /Og enable global optimization /Oy[-] enable frame pointer omission /Oi enable intrinsic functions -CODE GENERATION-
/G3 optimize for 80386 /Gy separate functions for linker
/G4 optimize for 80486 /Ge force stack checking for all funcs /G5 optimize for Pentium /Gs[num] disable stack checking calls /G6 optimize for Pentium Pro /Gh enable hook function call /GB optimize for blended model (default) /GR[-] enable C++ RTTI /Gd __cdecl calling convention /GX[-] enable C++ EH (same as /EHsc) /Gr __fastcall calling convention /Gi[-] enable incremental compilation /Gz __stdcall calling convention /Gm[-] enable minimal rebuild /GA optimize for Windows Application /EHs enable synchronous C++ EH /GD optimize for Windows DLL /EHa enable asynchronous C++ EH (press <return> to continue) /Gf enable string pooling /EHc extern "C" defaults to nothrow /GF enable read-only string pooling /QIfdiv[-] enable Pentium FDIV fix /GZ enable runtime debug checks /QI0f[-] enable Pentium 0x0f fix -OUTPUT FILES-
/Fa[file] name assembly listing file /Fo<file> name object file
/FA[sc] configure assembly listing /Fp<file> name precompiled header file /Fd[file] name .PDB file /Fr[file] name source browser file /Fe<file> name executable file /FR[file] name extended .SBR file /Fm[file] name map file -PREPROCESSOR-
/C don‘t strip comments /FI<file> name forced include file
/D<name>{=|#}<text> define macro /U<name> remove predefined macro /E preprocess to stdout /u remove all predefined macros /EP preprocess to stdout, no #line /I<dir> add to include search path /P preprocess to file /X ignore "standard places" -LANGUAGE-
/Zi enable debugging information /Zl omit default library name in .OBJ
/ZI enable Edit and Continue debug info /Zg generate function prototypes (press <return> to continue) /Z7 enable old-style debug info /Zs syntax check only /Zd line number debugging info only /vd{0|1} disable/enable vtordisp /Zp[n] pack structs on n-byte boundary /vm<x> type of pointers to members /Za disable extensions (implies /Op) /noBool disable "bool" keyword /Ze enable extensions (default) -MISCELLANEOUS-
/?, /help print this help message /V<string> set version string
/c compile only, no link /w disable all warnings /H<num> max external name length /W<n> set warning level (default n=1) /J default char type is unsigned /WX treat warnings as errors /nologo suppress copyright message /Yc[file] create .PCH file /Tc<source file> compile file as .c /Yd put debug info in every .OBJ /Tp<source file> compile file as .cpp /Yu[file] use .PCH file /TC compile all files as .c /YX[file] automatic .PCH /TP compile all files as .cpp /Zm<n> max memory alloc (% of default) -LINKING-
/MD link with MSVCRT.LIB /MDd link with MSVCRTD.LIB debug lib
/ML link with LIBC.LIB /MLd link with LIBCD.LIB debug lib /MT link with LIBCMT.LIB /MTd link with LIBCMTD.LIB debug lib /LD Create .DLL /F<num> set stack size (press <return> to continue) /LDd Create .DLL debug libary /link [linker options and libraries] C:\Documents and Settings\Administrator>
|
|