亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索

c++怎么獲取當(dāng)前函數(shù)的名字_c++獲取函數(shù)名稱的方法

尼克
發(fā)布: 2025-10-16 12:30:01
原創(chuàng)
319人瀏覽過
C++中可通過__func__獲取當(dāng)前函數(shù)名,它是C++11引入的靜態(tài)字符串變量;2. 多數(shù)編譯器支持__FUNCTION__,功能類似但可讀性更佳;3. 使用__PRETTY_FUNCTION__可獲得包含返回類型和參數(shù)的完整函數(shù)簽名;4. 運(yùn)行時(shí)通過?;厮萁馕龊瘮?shù)名適用于調(diào)試工具,但性能開銷大且平臺(tái)相關(guān);5. 日常開發(fā)推薦使用__func__或__FUNCTION__,簡單可靠。

c++怎么獲取當(dāng)前函數(shù)的名字_c++獲取函數(shù)名稱的方法

在C++中,直接獲取當(dāng)前函數(shù)的名字并不是語言原生支持的功能,但有幾種方法可以間接實(shí)現(xiàn)這一需求。下面介紹幾種常用且實(shí)用的方式。

使用__func__宏(最簡單)

C++11起,標(biāo)準(zhǔn)提供了__func__這個(gè)隱式定義的靜態(tài)局部變量,它是一個(gè)字符串字面量,表示當(dāng)前函數(shù)的名字。

用法示例:

void myFunction() {
    std::cout << "當(dāng)前函數(shù)名: " << __func__ << std::endl;
}
登錄后復(fù)制

輸出:

立即學(xué)習(xí)C++免費(fèi)學(xué)習(xí)筆記(深入)”;

當(dāng)前函數(shù)名: myFunction
登錄后復(fù)制

注意:__func__不是宏,而是由編譯器自動(dòng)聲明的static const char[]類型變量,僅在函數(shù)作用域內(nèi)有效。

使用__FUNCTION__(編譯器擴(kuò)展)

大多數(shù)編譯器(如GCC、Clang、MSVC)都支持__FUNCTION__,它的行為與__func__類似,但可讀性更好。

示例:

NameGPT名稱生成器
NameGPT名稱生成器

免費(fèi)AI公司名稱生成器,AI在線生成企業(yè)名稱,注冊公司名稱起名大全。

NameGPT名稱生成器0
查看詳情 NameGPT名稱生成器
void testFunc() {
    std::cout << "函數(shù)名: " << __FUNCTION__ << std::endl;
}
登錄后復(fù)制

在GCC和Clang中,__FUNCTION____func__的別名;在MSVC中功能相同。

結(jié)合預(yù)處理器和調(diào)試信息(高級(jí)用法)

如果需要更詳細(xì)的函數(shù)簽名(包括返回類型、參數(shù)),可以借助編譯器的內(nèi)置宏或調(diào)試符號(hào)。

  • GCC/Clang提供__PRETTY_FUNCTION__,能輸出完整的函數(shù)原型。
  • 示例:
void foo(int x, double y) {
    std::cout << __PRETTY_FUNCTION__ << std::endl;
}
登錄后復(fù)制

輸出可能為:

void foo(int, double)
登錄后復(fù)制

在類成員函數(shù)中,還會(huì)包含類名和const等修飾符。

運(yùn)行時(shí)解析(不推薦普通使用)

在某些調(diào)試或日志場景中,可以通過回溯(如backtrace() + abi::__cxa_demangle)獲取調(diào)用棧中的函數(shù)名,但這依賴系統(tǒng)API,性能開銷大,主要用于診斷工具。

這類方法復(fù)雜且平臺(tái)相關(guān),一般只在開發(fā)調(diào)試庫或崩潰分析時(shí)使用。

基本上就這些。日常開發(fā)中,__func____FUNCTION__已經(jīng)足夠滿足打印日志、調(diào)試追蹤等需求,簡單可靠。

以上就是c++++怎么獲取當(dāng)前函數(shù)的名字_c++獲取函數(shù)名稱的方法的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

c++速學(xué)教程(入門到精通)
c++速學(xué)教程(入門到精通)

c++怎么學(xué)習(xí)?c++怎么入門?c++在哪學(xué)?c++怎么學(xué)才快?不用擔(dān)心,這里為大家提供了c++速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn
最新問題
開源免費(fèi)商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)