首頁 > 後端開發 > C++ > 我應該使用哪個 C/C 標識符在運行時獲取函數名稱?

我應該使用哪個 C/C 標識符在運行時獲取函數名稱?

Patricia Arquette
發布: 2024-12-13 00:13:14
原創
762 人瀏覽過

Which C/C   Identifier Should I Use to Get a Function's Name at Runtime?

為函數名稱取得選擇正確的識別碼

C 和C 提供了幾個用於在運行時檢索活動函數名稱的識別碼: __PRETTY_FUNCTION__ 、 __FUNCTION__ 和__func__。本指南探討了這些標識符之間的差異,並提供了它們的使用指導。

__func__:

"__func__" 是 C99 引入的標識符,表示包含下列內容的字元陣列:函數的名稱。它在每個函數中隱式定義。在 C 中,func 是在 C 11 中引入的,提供了實現定義的字串。

__FUNCTION__:

"__FUNCTION__" 是一個預先定義的gcc 和 Visual C 等編譯器支援的標準擴充。但是,建議在支援的情況下使用 func,僅在 func 不可用時使用 FUNCTION

__PRETTY_FUNCTION__:

「__PRETTY_FUNCTION__」是一個gcc 特定的擴展,類似於 __FUNCTION__。對於 C 函數,它顯示“漂亮”的名稱,包括簽名。 Visual C 有一個類似的擴充 __FUNCSIG__。

決定使用哪個識別碼:

選擇取決於編譯器支援和所需的函數名稱格式:

  • 可用時使用func (大多數現代都支援編譯器)
  • 如果func 不可用,請使用FUNCTION
  • 使用PRETTY_FUNCTIONFUNCSIG帶有簽名函數的“漂亮”名稱名稱(gcc 或Visual C僅)

文件:

  • __func__: C99 §6.4.2.2/1
  • (C):C 11 §8.4.1[dcl.fct.def.general]/8
  • __FUNCTION__, __PRETTY_FUNCTION__:gcc 文件,「函數名稱作為字符串」
  • __FUNCSIG__:MSDN 文檔,「預定義宏」(視覺C )

以上是我應該使用哪個 C/C 標識符在運行時獲取函數名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板