c语言如何获取被调函数名 c语言获取调用函数名

C语言中主调函数、被调函数是什么,怎么区分?

主调函数,作为程序如口,进行程序运算,其中部分语句调用已定义的其他函数的一段程序。

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的宽甸网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

被调函数:被调用的函数为被调函数,调用该函数的函数为主调函数。它一般在主调函数的程序体内使用函数名调用,在外部进行定义。所以在主调函数内不存在函数定义,只存在名字。

举例:

main()

{ float a,b;

int c;

scanf("%f,%f",a,b);

c=max(a,b);

printf("Max is %d\n",c);

}

int max(float x, float y)

{ float z;

z=xy?x:y;

return(z);

}

其中main(){}是主调函数,因为其中“c=max(a,b);”调用了 被调函数 max。

程序中只能有个 main(){}(即主函数),但可以有多个 子函数。

主函数可以调用子函数,子函数可以相互调用。

被调用的函数为被调函数,调用该函数的函数为主调函数。

C语言 Linux 获取调用者函数名称

可以做到的,参考一下backtrace_symbols的实现以及相关原理,这里面比较复杂,也比较底层,一两句话说不清楚

你要是想通过_FUNCTION_这种方式来搞的话,可以通过如下方式:

#define m_fun(args) fun(__FILE__,__LINE__, args)

进行相应的替换即可

c语言函数内部获取调用该函数的函数名?

获取不到,函数名在连接时被替换成函数入口地址,实际运行的程序中通常不存在函数名(PE文件如果有函数导出表则导出表中可能会记录函数名)。变量名同理。


网站标题:c语言如何获取被调函数名 c语言获取调用函数名
当前地址:http://ybzwz.com/article/ddcosgh.html