函数在头文件中的声明:
extern void fun(int a);
函数体在c文件中的定义:
void fun(int a)
{
printf("a:%d\n",a);
}
如上所示函数fun,常常被定义在c文件中而被声明在头文件.h中。在使用过程中,包含了头文件即可调用。因此,常会出现不知道该函数是在什么地方被调用了。
确定函数的被调用位置可通过如下方式解决:
1、在头文件中声明该函数的地方之前,用宏定义替换掉该函数名,在替换的新函数名中加入__FILE__,__LINE__参数。如:
#define void fun(int a) void fun(int a,__FILE__,__LINE__)
2、在函数体中增加打印语句,如:printf(“file:%s line:%d\n”,__FILE__,__LINE__);
以上即可实现打印出函数fun在文件中被调用的位置。
标准宏:__func__ 可以打印出当前函数的函数名。
如:printf(“func:%s\n”,__func__);