__LINE__ __DATE__ __FILE__ __TIME__ 等宏定义解释
Names the predefined ANSI C and Microsoft C++ implementation macros.
The compiler recognizes predefined ANSI C macros and the Microsoft C++ implementation provides several more. These macros take no arguments and cannot be redefined. Some of the predefined macros listed below are defined with multiple values. See the following tables for more information.
Macro |
Description |
||||
---|---|---|---|---|---|
__DATE__ |
The compilation date of the current source file. The date is a string literal of the form Mmm dd yyyy. The month name Mmm is the same as for dates generated by the library functionasctime declared in TIME.H. |
||||
__FILE__ |
The name of the current source file. __FILE__ expands to a string surrounded by double quotation marks. 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:
|
||||
__LINE__ |
The line number in the current source file. The line number is a decimal integer constant. It can be altered with a #line directive. |
||||
__STDC__ |
Indicates full conformance with the ANSI C standard. Defined as the integer constant 1 only if the /Za compiler option is given and you are not compiling C++ code; otherwise is undefined. |
||||
__TIME__ |
The most recent compilation time of the current source file. The time is a string literal of the form hh:mm:ss. |
||||
__TIMESTAMP__ |
The date and time of the last modification of the current source file, expressed as a string literal in the form Ddd Mmm Date hh:mm:ss yyyy, where Ddd is the abbreviated day of the week and Date is an integer from 1 to 31. |
Macro |
Description |
||||
---|---|---|---|---|---|
_ATL_VER |
Defines the ATL version. |
||||
_CHAR_UNSIGNED |
Default char type is unsigned. Defined when /J is specified. |
||||
__CLR_VER |
Defines the version of the common language runtime used when the application was compiled. The value returned will be in the following format: Mmmbbbbb where, M is the major version of the runtime. mm is the minor version of the runtime. bbbbb is the build number.
|
||||
__cplusplus_cli |
Defined when compiling with /clr, /clr:pure, or /clr:safe. Value of __cplusplus_cli is 200406. __cplusplus_cli is in effect throughout the translation unit.
|
||||
__COUNTER__ |
Expands to an integer starting with 0 and incrementing by 1 every time it is used in a compiland. __COUNTER__ remembers its state when using precompiled headers. If the last __COUNTER__ value was 4 after building a precompiled header (PCH), it will start with 5 on each PCH use. __COUNTER__ lets you generate unique variable names. You can use token pasting with a prefix to make a unique name. For example:
|
||||
__cplusplus |
Defined for C++ programs only. |
||||
_CPPLIB_VER |
Defined if you include any of the C++ Standard Library headers; reports which version of the Dinkumware header files are present. |
||||
_CPPRTTI |
Defined for code compiled with /GR (Enable Run-Time Type Information). |
||||
_CPPUNWIND |
Defined for code compiled with /GX (Enable Exception Handling). |
||||
_DEBUG |
Defined when compiling with /LDd, /MDd, and /MTd. |
||||
_DLL |
Defined when /MD or /MDd (Multithread DLL) is specified. |
||||
__FUNCDNAME__ |
Valid only within a function and returns the decorated name of the enclosing function (as a string). __FUNCDNAME__ is not expanded if you use the /EPor /P compiler option. |
||||
__FUNCSIG__ |
Valid only within a function and returns the signature of the enclosing function (as a string). __FUNCSIG__ is not expanded if you use the /EP or /P compiler option. On a 64-bit operating system, the calling convention is __cdecl by default. |
||||
__FUNCTION__ |
Valid only within a function and returns the undecorated name of the enclosing function (as a string). __FUNCTION__ is not expanded if you use the /EP or /P compiler option. |
||||
_INTEGRAL_MAX_BITS |
Reports the maximum size (in bits) for an integral type.
|
||||
_M_ALPHA |
Defined for DEC ALPHA platforms (no longer supported). |
||||
_M_CEE |
Defined for a compilation that uses any form of /clr (/clr:oldSyntax, /clr:safe, for example). |
||||
_M_CEE_PURE |
Defined for a compilation that uses /clr:pure. |
||||
_M_CEE_SAFE |
Defined for a compilation that uses /clr:safe. |
||||
_M_IX86 |
Defined for x86 processors. See Values for _M_IX86 for more details. |
||||
_M_IA64 |
Defined for Itanium Processor Family 64-bit processors. |
||||
_M_IX86_FP |
Expands to a value indicating which /arch compiler option was used:
|
||||
_M_MPPC |
Defined for Power Macintosh platforms (no longer supported). |
||||
_M_MRX000 |
Defined for MIPS platforms (no longer supported). |
||||
_M_PPC |
Defined for PowerPC platforms (no longer supported). |
||||
_M_X64 |
Defined for x64 processors. |
||||
_MANAGED |
Defined to be 1 when /clr is specified. |
||||
_MFC_VER |
Defines the MFC version. For example, 0x0700 represents MFC version 7. |
||||
_MSC_EXTENSIONS |
This macro is defined when compiling with the /Ze compiler option (the default). Its value, when defined, is 1. |
||||
_MSC_VER |
Reports the major and minor versions of the compiler. For example, 1310 for Microsoft Visual C++ .NET 2003. 1310 represents version 13 and a 1.0 point release. The Visual C++ 2005 compiler version is 1400. Type cl /? at the command line to see the major and minor versions of your compiler along with the build number. |
||||
__MSVC_RUNTIME_CHECKS |
Defined when one of the /RTC compiler options is specified. |
||||
_MT |
Defined when /MD or /MDd (Multithreaded DLL) or /MT or /MTd(Multithreaded) is specified. |
||||
_NATIVE_WCHAR_T_DEFINED |
Defined when /Zc:wchar_t is used. |
||||
_OPENMP |
Defined when compiling with /openmp, returns an integer representing the date of the OpenMP specification implemented by Visual C++.
|
||||
_VC_NODEFAULTLIB |
Defined when /Zl is used; see /Zl (Omit Default Library Name) for more information. |
||||
_WCHAR_T_DEFINED |
Defined when /Zc:wchar_t is used or if wchar_t is defined in a system header file included in your project. |
||||
_WIN32 |
Defined for applications for Win32 and Win64. Always defined. |
||||
_WIN64 |
Defined for applications for Win64. |
||||
_Wp64 |
Defined when specifying /Wp64. |
As shown in following table, the compiler generates a value for the preprocessor identifiers that reflect the processor option specified.
Option in Development Environment |
Command-Line Option |
Resulting Value |
---|---|---|
Blend |
/GB |
_M_IX86 = 600 (Default. Future compilers will emit a different value to reflect the dominant processor.) |
Pentium |
/G5 |
_M_IX86 = 500 |
Pentium Pro, Pentium II, and Pentium III |
/G6 |
_M_IX86 = 600 |
80386 |
/G3 |
_M_IX86 = 300 |
80486 |
/G4 |
_M_IX86 = 400 |
__LINE__ __DATE__ __FILE__ __TIME__ 等宏定义解释的更多相关文章
- __FILE__,__LINE__,__DATE__,__TIME__,__FUNCTION__的使用
C/C++ 有5个常用的预定义宏,可以当作变量直接使用 __FILE__,__FUNCTION __,__LINE__,__DATE__,__TIME__. 注意是两个下划线. 其含义如下: __FI ...
- __FUNCTION__, __LINE__ 有助于debug的宏定义
__FUNCTION__, __LINE__ 今天无意之间看到一段代码,里面有这样一个片段: if (!interface) { err ("%s - error, can't find d ...
- VC中预处理指令与宏定义详解
刚接触到MFC编程的人往往会被MFC 向导生成的各种宏定义和预处理指令所吓倒,但是预处理和宏定义又是C语言的一个强大工具.使用它们可以进行简单的源代码控制,版本控制,预警或者完成一些特殊的功能. 一个 ...
- linux C宏定义 转
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等.下面列举一些成熟软件中常用得宏定义...... 1,防止一个头文件被重复包含 #ifndef COMDEF_H ...
- C中的预编译宏定义
可以用宏判断是否为ARC环境 #if _has_feature(objc_arc) #else //MRC #endif C中的预编译宏定义 -- 作者: infobillows 来源:网络 在将一 ...
- 20个C语言中常用宏定义总结
01: 防止一个头文件被重复包含 #ifndef COMDEF_H#define COMDEF_H//头文件内容#endif 02: 重新定义一些类型防止由于各种平台和编译器的不同,而产生的类型字节数 ...
- [转载]C宏定义的小结
FROM:http://blog.csdn.net/sunboy_2050/article/details/6103530 实现代码实例 程序代码: #include <stdio.h> ...
- C语言中的宏定义
目录(?)[-] 简单宏定义 带参数的宏 运算符 运算符 宏的通用属性 宏定义中圆括号 创建较长的宏 较长的宏中的逗号运算符 宏定义中的do-while循环do 空操作的定义 预定义宏 C语言中常用的 ...
- C 宏定义
C/C++中宏使用总结 .C/C++中宏总结C程序的源代码中可包括各种编译指令,这些指令称为预处理命令.虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境.本节将介绍如何应用预处理程序和注释 ...
随机推荐
- PED结构获取进程路径和命令行地址
1.FS寄存器 2.进入FS寄存器地址,7FFDD000 3.偏移30为PED结构 4.偏移地址10 3C,44偏移:路径地址,命令行地址 // 通过PEB结构去查找所有进程模块 void *PEB ...
- js面向对象(构造函数与继承)
深入解读JavaScript面向对象编程实践 Mar 9, 2016 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化.多态.和封装几种技术. 对JavaScript而言,其 ...
- (转)HTML文档头部信息
原文:http://www.cnblogs.com/sunyunh/archive/2012/07/25/2609199.html HTML(3)HTML文档头部信息 <!DOCTYPE h ...
- hdu 2096
PS:做不出前面几道题...很不爽..扒拉了几下找了简单题来做.... #include "stdio.h" int cal(int a); int main(){ int a,b ...
- 并非然并卵的z-index
最近做一些东西的时候总觉得加上z-index和不加对于最终的显示结果并没有什么区别,开始以为一张图片把z-inde的值调小一点儿,就可以当做背景图片一样使用,跟background是一样的,在试过几次 ...
- JS - The react framework
这几天因为赶时间 , 所以理解上可能有许多的误差 , 如果你不幸点进来了 , 请不要看我的代码 , 这几天我会重新修改 , 然后把错误的不足的 全部修正一下 . /hwr/src/index.js i ...
- 查询某个表或者所有表的字段说明 SQLServer
查询某个表或者所有表的字段说明SELECT [Table Name] = OBJECT_NAME(c.object_id), [Column Name] = c.name, [Des ...
- vi中的批量替换
举个例子啊: 将文件tihuan(假设此文本中字符a)中的所有字符a换成字符w,其命令为: 1.vi tihuan 2.按esc键 3.按shift+: 4.在:后输入 %s/a/w/g 就ok ...
- scp 在Ubuntu下传文件 基于ssh
scp是linux下的远程拷贝 命令: (1)将本地文件拷贝到远程:scp 文件名 用户名@计算机IP或者计算机名称:远程路径 (2)从远程将文件拷回本地:scp 用户名@计算机IP或者计算机名 ...
- 【LeetCode OJ】Max Points on a Line
Problem: Given n points on a 2D plane, find the maximum number of points that lie on the same straig ...