C/C++中的五个预定义的宏名,它们是:
__LINE__
__FILE__
__DATE__
__TIME__
__STDC__
C++中还定义了 __cplusplus

如果编译器不是标准的,则可能仅支持以上宏名中的几个,或根本不支持。记住编译程序也许还提供其它预定义的宏名。

__DATE__ 进行预处理的日期(“Mmm dd yyyy”形式的字符串文字,如May 27 2006)
__FILE__ 代表当前源代码文件名的字符串文字 ,包含了详细路径,如G:/program/study/c+/test1.c
__LINE__ 代表当前源代码中的行号的整数常量
__TIME__ 源文件编译时间,格式微“hh:mm:ss”,如:09:11:10;
__func__ 当前所在函数名,在编译器的较高版本中支持
__FUNCTION__ 当前所在函数名
  对于__FILE__,__LINE__,__func__,__FUNCTION__ 这样的宏,在调试程序时是很有用的,因为你可以很容易的知道程序运行到了哪个文件的那一行,是哪个函数。
而对于__DATE__,__TIME__则可以获取编译时间,如如下代码通过宏获取编译时间,并通过sscanf()从中获取具体的年月日时分秒数据,可在代码中做相应使用。我的代码中是根据此数据作为版本标识,并依此判断哪个版本新些及是否需要升级。
char * creationDate   = __DATE__ ", " __TIME__;
sscanf(creationDate, "%s %d %d, %d:%d:%d", month, &day, &year, &hour, &min, &sec);

C/C++中的五个预定义的宏名相关推荐

  1. C标准中一些预定义的宏,如__FILE__,__func__等

    C标准中一些预定义的宏 C标准中指定了一些预定义的宏,对于编程经常会用到.下面这个表中就是一些常常用到的预定义宏. 宏 意义 __DATE__ 进行预处理的日期("Mmm dd yyyy&q ...

  2. dotnet 新项目格式与对应框架预定义的宏

    在 sdk style 的项目格式支持使用多框架开发,此时需要在代码里面通过宏判断,在编译的时候执行不同的代码.本文告诉大家在框架里面对应的预定义的条件编译符有哪些 在让一个 csproj 项目指定多 ...

  3. 走火入魔的 C/C++ 如何通过编译器预定义的宏值来区分 target OS 是 Windows 还是 Linux...

    事先提醒尽量不要依赖这些预定义的宏, 它们会让你的代码变得臃肿并埋下各种bug隐患 http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use ...

  4. 跨平台常用的编译器预定义的宏

    跨平台常用的宏 #ifdef _WIN32 //define something for Windows (32-bit and 64-bit, this part is common) #ifdef ...

  5. 命令行输出预定义的宏

    1 .  cpp  -dM /dev/null 或者 echo | cpp -dM 2 echo | gcc -E -dM -

  6. C语言 —— 预定义符号__FILE____LINE___func__(编写调试函数printf , debug)

    C的预定义符号: __FILE__ __LINE__ __func__ 测试代码:在文件 line.c 中 1 #include <stdio.h>2 int main()3 {4 pri ...

  7. DI使用value属性与value标签的区别以及xml预定义实体引用

    差异类别 value属性注入 <value>标签注入 参数位置 值需要写在value属性值中,且加上双引号,即value="xxx" 值写在<value>x ...

  8. nginx proxy_pass 使用变量报错_nginx自定义变量与内置预定义变量

    nginx可以使用变量简化配置与提高配置的灵活性,所有的变量值都可以通过这种方式引用: $变量名 而nginx中的变量分为两种,自定义变量与内置预定义变量 内置变量 声明 可以在sever,http, ...

  9. [C/C++] 显示各种C/C++编译器的预定义宏(C11标准、C++11标准、VC、BCB、Intel、GCC)

    转载自来源: [C/C++] 显示各种C/C++编译器的预定义宏(C11标准.C++11标准.VC.BCB.Intel.GCC) http://dev.gameres.com/Program/Othe ...

  10. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第40讲:PHP中预定义超全局变量

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第40讲:PHP中预定义超全局变量 超全局变量是在全部作用域中始终可用的内置变量.PHP 中的许多预定义变量都是"超全局的".PHP供提供 ...

最新文章

  1. SolidWorks大师班:从基础到专业学习教程
  2. jquery选择器的使用方式
  3. 经验教训 | STM32 异常之BFARVALID,PRECISERR,INVSTATE
  4. PHP易混淆函数的区分方法及意义
  5. Jmeter(二)目录介绍
  6. 第一段冲刺 站立会议 5.5
  7. DBeaverUE for Mac(数据库管理软件)旗舰版
  8. C#.NET com组件的编写
  9. 测试用例的设计方法及例子
  10. 小夜曲dsd使用foobar2000测试dsd输出
  11. laravel下载php7.2,【laravel7.x中文文档】安装
  12. 团队协作工具-版本控制软件SVN、Git、码云
  13. 对接京东联盟,签名无效
  14. Matla + SVD 求解变换矩阵
  15. unpack python_python数据处理之 ddt,@data, @unpack
  16. Windows 10正式版的历史版本
  17. 单片机中常说的 1T 和 12T 的意思
  18. QrCode类生成二维码海报
  19. 为什么国内服务器需要备案?
  20. free ebooks: http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books

热门文章

  1. PCB正片和负片的区别与使用
  2. 苹果雪豹系统_AI知识图谱,让我撸到了一只天山上的雪豹
  3. 【Unity编辑器扩展】Unity发布资源到商店流程Unity Asset Store Publish
  4. 解决 nvcc: command not found
  5. 计算机网络设备子系统,关于设备间子系统的几点知识学习
  6. 学习PS软件的渐变工具
  7. oracle的五种元素,五种元素
  8. 游戏开发技术帖:光线追踪技术的误点和难点
  9. 请在微信客户端中打开链接是什么鬼 ?
  10. python b站弹幕分析_【python】B站弹幕数据分析及可视化(爬虫+数据挖掘)