Linux/Unix C 编程 之(四)代码定位:__FILE__, __FUNCTION_, __LINE__

代码定位__FILE__, __FUNCTION__, __LINE__Kz ybc'q6N}0Linuxeden博客家园{tS~\] a

这是三个非常有用的全局变量,当程序需要输出一些内容,而又想知道输出的内容是在哪里输出的时候,这几个全局变量就派上用场了。Linuxeden博客家园6xUf5V'}2}b\
__FILE__,__FUNCTION__, __LINE__ 从名字可以直接看出来了,对应的:代码文件名, 函数名, 行号。

 

示例代码:
o Y0K]%u0------------------------------------------------------------------------

Df7\f g Q0

G3GV lx#P*]?/S0//__FUNCTION__,__LINE__,__FILE__
W|)d$c v\&@0//testout.cLinuxeden博客家园.od#z3?!kd

Linuxeden博客家园}0Sc*a!d0|+I

#include <stdio.h>
%UU2Wy'~Z;|'j0a0#include <stdlib.h>Linuxeden博客家园7V2z:\Fl9g|

Linuxeden博客家园e"uD[ q0|)RL"B

void testout()
v jQW;F!HO Mf0{
!@| ~aO.B;d0g.t0 printf("cur func : %s ; cur line : %d\n", __FUNCTION__, __LINE__);
O#}_ |:fjE0 return;
.fux}.kOO0}

(H CX A)uem0Linuxeden博客家园,O!S4Az/]:i

void main()
6g#\1LIvn0ICv0{
Q:q:mv P$hbMh0 printf("cur file : %s ; cur func : %s ; cur line : %d\n", __FILE__, __FUNCTION__, __LINE__);
iB[u b!P�f2R0 testout();
O ~T"Od#v;V/P4G0 return;
\E*mi(PF$Uc0}Linuxeden博客家园 WN,\z2e/~!E

Linuxeden博客家园p,C@H,WI n6b

------------------------------------------------------------------------

cTsc~*m(l0Linuxeden博客家园 mR.Uf"l {J'bl^Z

####################

3G9zkm3h!Gm-e0

:W�l1Hm%Gz0编译Linuxeden博客家园6vy ^-Jesj%^
 gcc -o testout testout.c
6~)TdW#dt6J0运行:
9b;zo{L p3E1g8X%~0 ./testoutLinuxeden博客家园 xu-l7H+y3W-W
输出:
Pd�@:u;knd0 cur file : testout.c ; cur func : main ; cur line : 15
U qpr!jN5f$}0 cur func : main ; cur line : 9

Y\P5{5A` U&\0

(p0I E7O.fuIn0####################

posted @ 2012-10-17 14:47  alxe_yu  阅读(303)  评论(0)    收藏  举报