预定义宏:

ANSI C 定义了许多宏。在编程中您可以使用这些宏,但是不能直接修改这些预定义的宏。
宏    描述
__DATE__    当前日期,一个以 "MMM DD YYYY" 格式表示的字符常量。
__TIME__    当前时间,一个以 "HH:MM:SS" 格式表示的字符常量。
__FILE__    这会包含当前文件名,一个字符串常量。
__LINE__    这会包含当前行号,一个十进制常量。
__STDC__    当编译器以 ANSI 标准编译时,则定义为 1。

实例演示:

//[root@J01051386 function]# cat line.c
#include <stdio.h>
int main()
{printf("File:%s\n",__FILE__);printf("Date:%s\n",__DATE__);printf("Time:%s\n",__TIME__);printf("Line:%d\n",__LINE__);printf("Ansi:%d\n",__STDC__);printf("%s\n",__func__);
}

执行过程以及结果:

[root@J01051386 function]# gcc line.c
[root@J01051386 function]# ./a.out
File:line.c
Date:Nov  2 2018
Time:15:33:30
Line:7
Ansi:1
main

预处理宏的使用 —— 打印debug信息:

//定义:debug打印规则//
//[root@J01051386 user_mgr]# cat debug.h
#define __DEBUG 1
#if __DEBUG#define DEBUG_PRINT(fmt, ...)    printf("Debug-- File: "__FILE__", Line: %05d, Function: %s: " , __LINE__,__FUNCTION__ );printf(fmt, ##__VA_ARGS__);printf("\n")
#else#define DEBUG_PRINT(fmt, ...)
#endif
//引用:使用.h文件定义的函数//
//执行cat命令
[root@J01051386 user_mgr]# vim io.c +535
//查看到的结果如下显示
535         DEBUG_PRINT("%s\n", sql); //sql的值是select id, name, remark, grouname from user_resource
//执行结果显示: 与定义相对应
Debug-- File: io.c, Line: 00535, Function: readfromdb2: select id, name, remark, grouname from user_resource

C 预处理器 —— __DATE__ # __TIME__ # __FILE__ # __LINE__ # __STDC__ (预处理宏的使用 —— 打印debug信息:)相关推荐

  1. C语言入门教程||C语言 文件读写||C语言 预处理器

    C语言 文件读写 本章我们将介绍 C 程序员如何创建.打开.关闭文本文件或二进制文件. 一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节.C 语言不仅提供了访问顶层的函数,也提供了底层 ...

  2. C | C预处理器和C库

    目录 一.翻译程序的第一步 二.明示常量:#define 2.1 记号 2.2 重定义常量 三.在#define中使用参数 3.1 用宏参数创建字符串:#运算符 3.2 预处理器黏合剂:##运算符 3 ...

  3. __FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程 )(转自IT博客)

    先看下简单的初始代码:注意其编译运行后的结果. root@xuanfei-desktop:~/cpropram/2# cat global.h //头文件 #ifndef CLOBAL_H       ...

  4. (转载)虚幻引擎3--9掌握虚幻技术UnrealScript 预处理器

    第九章 – UNREALSCRIPT预处理器 9.1概述 9.2 MACRO(宏)的基础知识 指南 9.1 –您的第一个宏 9.3具有参数的宏 指南 9.2 –       MACRO参数 9.4内置 ...

  5. 16道嵌入式C语言面试题(经典) 预处理器(Preprocessor)

    16道嵌入式C语言面试题(经典) 预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_ ...

  6. 使用一些宏跟踪调试__LINE__ __FILE__ __DATE__ __TIME__ __STDC__

    使用一些宏跟踪调试 ANSI标准说明了五个预定义的宏名.它们是: __LINE__ __FILE__ __DATE__ __TIME__ __STDC__ C++中还定义了 __cplusplus 如 ...

  7. C语言中预定义符 __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__ 的使用演示

    本文演示了C语言中预定义符 __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__ 的使用. 这几个预定义符的名称就没必要再介绍了,顾名思义嘛. // ...

  8. C 语言编程 — 宏定义与预处理器指令

    目录 文章目录 目录 前文列表 宏 预处理器 预处理器指令 预处理器指令示例 预处理器指令运算符 宏定义 简单宏定义 带参数的宏定义 符号吞噬问题 使用 do{}while(0) 结构 预定义的宏 常 ...

  9. python预处理c语言_详解C语言编程中预处理器的用法

    预处理最大的标志便是大写,虽然这不是标准,但请你在使用的时候大写,为了自己,也为了后人. 预处理器在一般看来,用得最多的还是宏,这里总结一下预处理器的用法. #include #define MACR ...

最新文章

  1. python 中关于py2exe打包
  2. 计算机osi模型的功能osi,OSI基本参考模型是什么 OSI基本参考模型各层功能介绍【图文】...
  3. 主机ping不通ubuntu虚拟机的解决方法
  4. java前后端分离账号错误_前后端分离,获取token,验证登陆是否失效
  5. php的浏览历史怎么做,php浏览历史记录的方法
  6. 没有bug队——加贝——Python 53,54
  7. 怎么把外部参照合并到图纸_怎么对两个图纸内容进行合并操作
  8. mysql+last_query_cost_辛星简译MySQL中的last_query_cost
  9. java 获取文件后缀及根据文件扩展名判断文件是否图片格式
  10. 梅捷512G固态拆机+得一微YS9082HP量产教程+YS9082HP开卡工具
  11. 智能时代,谁是“大师”?
  12. scala学习之旅(十三):隐式转换和隐式参数
  13. 华为服务器系列产品介绍,裸金属服务器产品介绍
  14. C/C++函数名称修饰规则及extern C的作用(函数名压扎)
  15. 基于搜狗接口的微信公众号及其信息爬取
  16. idea如何全局搜索关键字_IntelliJ 的搜索和全局搜索怎么用
  17. SQL的基本和常用语句
  18. 解决公众号网页 微信免登录 重定向 地址 只能带一个参数问题
  19. Target “pango_windowing“ links to target “Eigen3::Eigen“ but the target was not found. Perhaps a
  20. surfer-地形图渲染

热门文章

  1. Button的使用(五):从xml中加载
  2. Git版本库创建(包含文件权限设置 Linux环境下)
  3. Axure RP使用攻略--入门级(五)系统函数与变量
  4. 结对编程——四则运算过程
  5. 推荐15款响应式的 jQuery Lightbox 插件
  6. 树形DP题目。。。转载
  7. asp.net 子页面调用外部 js
  8. Spring MVC 的 异常处理
  9. Go安装web框架revel
  10. 计算机技术综合应用,浅谈计算机技术综合应用能力培养.pdf