本文演示了C语言中预定义符 __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__ 的使用. 这几个预定义符的名称就没必要再介绍了,顾名思义嘛. // 演示 __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__ 的使用 #include "stdio.h" void testFunc(void){ printf("File = %s\nLine = %d\nFunc=%s\n…
预处理过程时,会做以下事情或着更多: 将所有的#define删除,并且展开所有的宏定义: 处理所有条件编译指令,如#if,#ifdef等: 处理#include预编译指令,将被包含的文件插入到该预编译指令的位置.该过程递归进行,及被包含的文件可能还包含其他文件. 删除所有的注释//: 添加行号和文件标识:每行的格式是“#   行号   文件名   标志“,其中的”行号“与”文件名“表示从它后一行开始的内容来源于 哪一个文件的哪一行,标志可以是1,2,3,4四个数字,每个数字的含义如下: 1:表示…
root@xuanfei-desktop:~/cpropram/2# cat global.h //头文件#ifndef CLOBAL_H        #define GLOBAL_H        #include <stdio.h>        int funca(void);        int funcb(void);#endifroot@xuanfei-desktop:~/cpropram/2# cat funca.c //函数a#include "global.h&…
[转]宏的高级使用--##,__VA_ARGS__, __FILE__, __FUNCTION__等 http://blog.csdn.net/yiya1989/article/details/7849588 先说一下本文中会提到的内容:##,__VA_ARGS__, __FILE__, __LINE__ , __FUNCTION__等 宏变量: 先举一个例子,会用到上面这些宏: #define myprintf(...) printk("[lch]:File:%s, Line:%d, Func…
__FILE__,__LINE__,FUNCTION__实现代码跟踪调试 ( linux 下c语言编程 ) 先看下简单的初始代码:注意其编译运行后的结果. root@xuanfei-desktop:~/cpropram/2# cat global.h //头文件 #ifndef CLOBAL_H #define GLOBAL_H #include int funca(void); int funcb(void); #endif root@xuanfei-desktop:~/cpropram/2#…
转:http://www.cnitblog.com/zouzheng/archive/2007/08/31/32691.aspx 先看下简单的初始代码:注意其编译运行后的结果. root@xuanfei-desktop:~/cpropram/2# cat global.h //头文件#ifndef CLOBAL_H        #define GLOBAL_H        #include <stdio.h>        int funca(void);        int funcb…
转自:http://blog.csdn.net/edonlii/article/details/8491342/ 在linux编程中,当文件数量变的众多之后,使用gdb调试就是一场灾难.因此在程序中加入合理的打印信息,定位错误出现的文件名,函数名,行号等信息,能更高效的定位到问题的所在. 下面定义了宏,分别是WARNING,INFO,ERROR,SHOW_TIME,DEBUG等.利用了 __FILE__,_FUNCTION__, __LINE__等变量... _FILE__,__FUNCTION…
C/C++ 有5个常用的预定义宏,可以当作变量直接使用 __FILE__,__FUNCTION __,__LINE__,__DATE__,__TIME__. 注意是两个下划线. 其含义如下: __FILE__:                文件的路径和名称 __FUNCTION __:    函数名 __LINE__:               行数 __DATE__:              文件的编译日期 __TIME__:               文件的编译时间 用法: 添加在你…
一. 内容概述 本文主要介绍c语言中条件编译相关的预编译指令,包括#define.#undef.#ifdef.#ifndef.#if.#elif.#else.#endif.defined. 二.条件编译 条件编译是根据实际定义宏(某类条件)进行代码静态编译的手段.可根据表达式的值或某个特定宏是否被定义来确定编译条件. 最常见的条件编译是防止重复包含头文件的宏,形式跟下面代码类似: #ifndef ABCD_H #define ABCD_H // ... some declaration code…
在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__); }…