我们知道
在gcc中 gcc -dM -E test.c 就会显示出预定义宏,
#define __DBL_MIN_EXP__ (-1021)
#define __FLT_MIN__ 1.17549435e-38F
#define _WIN32 1
#define __CHAR_BIT__ 8
#define __WCHAR_MAX__ 65535U
#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
#define __FLT__METHOD__ 2
#define __DBL_MIN_10_EXP__ (-307)
#define __FINITE_MATH_ONLY__ 0
#define __GNUC_PATCHLEVEL__ 0
#define _stdcall __attribute__((__stdcall__))
#define __DEC64_MAX_EXP__ 385
#define __SHRT_MAX__ 32767
#define __LDBL_MAX__ 1.18973149535723176502e+4932L
#define __GXX_TYPEINFO_EQUALITY_INLINE 0
#define __UINTMAX_TYPE__ long long unsigned int
#define __DEC32_EPSILON__ 1E-6DF
#define __LDBL_MAX_EXP__ 16384
#define __SCHAR_MAX__ 127
#define __DBL_DIG__ 15
#define __SIZEOF_INT__ 4
#define __SIZEOF_POINTER__ 4
#define __USER_LABEL_PREFIX__ _
#define __STDC_HOSTED__ 1
#define __WIN32 1
#define __LDBL_HAS_INFINITY__ 1
#define __FLT_EPSILON__ 1.19209290e-7F
#define __LDBL_MIN__ 3.36210314311209350626e-4932L
#define __DEC32_MAX__ 9.999999E96DF
.....................................
1>那么 vc 中怎么才能显示出来这些呢?
2>这个是不是编译器在做 词法分析 语法分析 的时候定义的,也就是不能看到实现的源代码 是么?
跪求答案,

解决方案 »

  1.   

    1 MSDN上有列出 
    2 不是,跟使用参数-D宏 一起做处理的。
      

  2.   

    第一个找到了,
    不过只有宏说明
    __FILE__
     The name of the current source file. __FILE__ expands to a string surrounded by double quotation s. To ensure that the full path to the file is displayed, use /FC (Full Path of Source Code File in Diagnostics).You can create your own wide string version of __FILE__ as follows:  Copy Code 
    #include <stdio.h>
    #define WIDEN2(x) L ## x
    #define WIDEN(x) WIDEN2(x)
    #define __WFILE__ WIDEN(__FILE__)
    wchar_t *pwsz = __WFILE__;int main() {}
     
     
    跟使用参数-D宏 一起做处理的。 是什么意思呢?要是没有参数—D是不是 就不能识别了?
      

  3.   

    >>好多个/D 哦 应该去掉哪个呢?诚求答案
    增加  /P预编译选项,会生成后缀名.i的文件
    是编译器编译之前的所有预处理,当然也包括宏替换。