Chinaunix首页 | 论坛 | 博客
  • 博客访问: 127940
  • 博文数量: 38
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 191
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-16 11:31
个人简介

嵌入式新人

文章分类

全部博文(38)

文章存档

2016年(38)

我的朋友

分类: 嵌入式

2016-08-14 08:00:26

C语言的预定义宏在代码调试或输出代码日志方面给我们带来很多便利,因此有必要做了解。

1 常用的预定义宏

(1)__DATE__     进行预处理的日期 
(2)__FILE__     代表当前源代码文件名的字符串 
(3)__LINE__     代表当前源代码文件中行号的整数常量 
(4)__STDC__     设置为1时,表示该实现遵循C标准 
(5)__STDC_HOSTED__  为本机环境设置为,否则设为0 
(6)__STDC_VERSION__ 为C99时设置为199901L 
(7)__TIME__     源文件的编译时间 
(8)__func__     C99提供的,所在函数名的

2 预定义宏示例

    __FILE__、__LINE__和__func__这样的宏,在调试程序时是很有用的,可以很容易知道程序运行到了哪个文件的那一行,是哪个函数,例如

  1. #include <stdio.h>

  2. void why_me();
  3. int main()
  4. {
  5.     printf( "The file is %s\n", __FILE__ );
  6.     printf( "The date is %s\n", __DATE__ );
  7.     printf( "The time is %s\n", __TIME__ );
  8.     //printf("The version is %s\n",__STDC_VERSION__); //gcc中不支持__STDC_VERSION__
  9.     printf( "This is line %d\n", __LINE__ );
  10.     printf( "This function is %s\n ", __func__ );
  11.    why_me();
  12.    return 0;
  13. }
  14. void why_me()
  15. {
  16.     printf( "This function is %s\n", __func__ );
  17.     printf( "This is line %d\n", __LINE__ );
  18. }
输出结果
阅读(1628) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~