C语言中的__LINE__宏
在C语言中,有这么四个预定义的宏:
当前文件: __FILE__
当前行号: __LINE__
当前日期: __DATE__
当前时间: __TIME__
这4个宏在代码编译的时候,由编译器替换成实际的值或字符串。
下面演示一段代码,编译一个代码: test.c
#include <stdio.h>
void main()
{
printf(" %s \n %d \n %s \n %s \n",__FILE__,__LINE__,__DATE__,__TIME__);
}
他的运行结果是:
test.c May
::
只有行号是整数,其他3个都是字符串,用起来很方便吧!
在调试程序的时候 __FILE__,__LINE__ 很有用;
在确认程序编译时间(版本参考)的时候 __DATE__,__TIME__ 很有用。
原创文章,转载请注明出处。
C语言中的__LINE__宏的更多相关文章
- C语言中如何使用宏
		
C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结. 宏使用中的常见的基础问题 #符号和##符号的使用 ...符号的 ...
 - C语言中的宏定义
		
目录(?)[-] 简单宏定义 带参数的宏 运算符 运算符 宏的通用属性 宏定义中圆括号 创建较长的宏 较长的宏中的逗号运算符 宏定义中的do-while循环do 空操作的定义 预定义宏 C语言中常用的 ...
 - C语言中的宏
		
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等.下面列举一些成熟软件中常用得宏定义...... 1,防止一个头文件被重复包含 #ifndef COMDEF_ ...
 - C语言学习笔记--C语言中的宏定义
		
1. C 语言中的宏定义 (1)#define 是预处理器处理的单元实体之一(因此,预处理器只是简单的进行替换,并不(2)#define 定义的宏可以出现在程序的任意位置(包括函数体的内部)(3)#d ...
 - C语言中预定义符 __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__ 的使用演示
		
本文演示了C语言中预定义符 __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__ 的使用. 这几个预定义符的名称就没必要再介绍了,顾名思义嘛. // ...
 - C语言中宏定义(#define)时do{}while(0)的价值(转)
		
C语言中宏定义(#define)时do{}while(0)的价值 最近在新公司的代码中发现到处用到do{...}while(0),google了一下,发现Stack Overflow上早有很多讨论,总 ...
 - c 语言中宏定义和定义全局变量的区别
		
宏定义和定义全局变量的区别: 1 作用时间不同. 宏定义在编译期间即会使用并替换,而全局变量要到运行时才可以. 2 本质类型不同. 宏定义的只是一段字符,在编译的时候被替换到引用的位置.在运行中是没有 ...
 - C\C++语言中的宏多重展开和递归展开
		
宏定义中的#,## 1. 宏中的参数前面使用一个#,预处理器会把这个参数转换为一个字符数组 2.记号粘贴操作符(token paste operator): ## “## ...
 - C语言中的调试小技巧
		
C语言中的调试小技巧 经常看到有人介绍一些IDE或者像gdb这样的调试器的很高级的调试功能,也听人说过有些牛人做工程的时候就用printf来调试,不用特殊的调试器.特别是在代码经过编译器一些比较复杂的 ...
 
随机推荐
- pyqt4 利用信号槽在子线程里面操作Qt界面
			
转载:ABigCaiBird #-*- coding:utf-8 -*- ####### from PyQt4.QtCore import * from PyQt4.QtGui import * im ...
 - Qt深入浅出(十五)QTableView
			
转载:吓人的猿 TableView 表格视图控件QTableView,需要和QStandardItemModel, 配套使用,这套框架是基于MVC设计模式设计的,M(Model)是QStandardI ...
 - python3学习笔记三(数字类型,字符串)
			
数字(Number)类型 有四种类型:整数.布尔型.浮点数和复数 int整数 bool布尔,如True float浮点数,1.23 complex复数,1+2j.1.2+2.3j 内置的 type() ...
 - Hadoop是怎么分块Block的?
			
不多说,直接上干货! hadoop的分块有两部分. 第一部分就是数据的划分(即把File划分成Block),这个是物理上真真实实的进行了划分,数据文件上传到HDFS里的时候,需要划分成一块一块,每块的 ...
 - 阿里云kubernetes遭入侵pubg进程占用cpu资源100%解决方法
			
发现服务器CPU占用100%,通过top命令发现pubg -c config.json -t 2占用CPU资源,kill进程会自动启动.黑客入侵方式是kubernetes创建pod. Name: ku ...
 - java1.8 新特性(关于 match,find  reduce  )操作
			
match处理Integer集合 package lambda.stream; /** * @author 作者:cb * @version 创建时间:2019年1月4日 下午2:35:05 */ i ...
 - 廖雪峰Java1-4数组操作-2数组排序
			
冒泡排序法 将第一个值和后面的值,挨个比较,如果手里的值比序列的值小,就交换数据,拿新的数字继续比较,直到最后. 再将第二个值和后面的值,挨个比较. 循环往复,排序完成. int[] ns = {28 ...
 - golang中defer的理解
			
在golang当中,defer代码块会在函数调用链表中增加一个函数调用.这个函数调用不是普通的函数调用,而是会在函数正常返回,也就是return之后添加一个函数调用.因此,defer通常用来释放函数内 ...
 - FastDFS+Nginx+fastdfs-nginx-module集群搭建
			
一.实验环境说明 操作系统: Centos 6.6 x64 FastDFS 相关版本: fastdfs-5.05 fastdfs-nginx-module-v1.16 libfastcommon-v1 ...
 - for循环中进行联网请求数据、for循环中进行异步数据操作,数据排序错乱问题解决;
			
for循环中进行联网请求数据,由于网络请求是异步的,第一个网络请求还没有回调,第二次第三次以及后续的网络请求又已经发出去了,有可能后续的网络请求会先回调:这时我们接收到的数据的排序就会错乱:怎么才能让 ...