_MSC_VER含义

_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 SettingsAdministrator>cl /?

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80×86

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 SettingsAdministrator>