可以做到的,參考一下backtrace_symbols的實(shí)現(xiàn)以及相關(guān)原理,這里面比較復(fù)雜,也比較底層,一兩句話(huà)說(shuō)不清楚
創(chuàng)新互聯(lián)建站堅(jiān)信:善待客戶(hù),將會(huì)成為終身客戶(hù)。我們能堅(jiān)持多年,是因?yàn)槲覀円恢笨芍档眯刨?lài)。我們從不忽悠初訪(fǎng)客戶(hù),我們用心做好本職工作,不忘初心,方得始終。10余年網(wǎng)站建設(shè)經(jīng)驗(yàn)創(chuàng)新互聯(lián)建站是成都老牌網(wǎng)站營(yíng)銷(xiāo)服務(wù)商,為您提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、HTML5建站、網(wǎng)站制作、成都品牌網(wǎng)站建設(shè)、小程序定制開(kāi)發(fā)服務(wù),給眾多知名企業(yè)提供過(guò)好品質(zhì)的建站服務(wù)。
你要是想通過(guò)_FUNCTION_這種方式來(lái)搞的話(huà),可以通過(guò)如下方式:
#define m_fun(args) fun(__FILE__,__LINE__, args)
進(jìn)行相應(yīng)的替換即可
獲取不到,函數(shù)名在連接時(shí)被替換成函數(shù)入口地址,實(shí)際運(yùn)行的程序中通常不存在函數(shù)名(PE文件如果有函數(shù)導(dǎo)出表則導(dǎo)出表中可能會(huì)記錄函數(shù)名)。變量名同理。
在函數(shù)中需要函數(shù)名的地方寫(xiě)上 宏 __func__就可以了
#include stdio.h
const char* func1()
{
return __func__; //這語(yǔ)句類(lèi)似return (char *)"func1";
}
void func2()
{
printf("call function %s\n", __func__);
}
int
main(void)
{
printf("function name %s\n", func1());
func2();
return(0);
}
運(yùn)行結(jié)果:
function name func1
call function func2
當(dāng)前名稱(chēng):c語(yǔ)言編程獲取函數(shù)名 C語(yǔ)言中函數(shù)名
文章URL:http://chinadenli.net/article6/dodigig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站建設(shè)、Google、面包屑導(dǎo)航、網(wǎng)站導(dǎo)航、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容