首頁 > 後端開發 > C++ > 如何在「__func__」、「__FUNCTION__」和「__PRETTY_FUNCTION__」之間進行選擇以存取 C 和 C 語言中的函數名稱?

如何在「__func__」、「__FUNCTION__」和「__PRETTY_FUNCTION__」之間進行選擇以存取 C 和 C 語言中的函數名稱?

Susan Sarandon
發布: 2024-12-13 15:35:11
原創
850 人瀏覽過

How to Choose Between `__func__`, `__FUNCTION__`, and `__PRETTY_FUNCTION__` for Accessing Function Names in C and C  ?

C 和C 語言中的函數名稱巨集

在C 和C 語言中,有多個巨集可用於存取當前函數的名稱。這些巨集包括 __func__、__FUNCTION__ 和 __PRETTY_FUNCTION__。

func

在C99 定義並被C 11 採用,func 是一個隱式宣告的字元陣列變數保存封閉函數的名稱。這是一個簡單而輕量級的選項,提供了樸素的函數名稱。

FUNCTION

FUNCTION 是一個預先標準某些編譯器支援的擴充。它的行為類似於 func__,但它不是官方語言標準的一部分。出於可移植性的原因,最好使用 __func

PRETTY_FUNCTION

PRETTY_FUNCTION 是一個提供函數「漂亮」名稱的特定擴展,包括它的簽名。與它的前身不同,它在 C 中主要用於獲取具有參數類型的完整函數原型。

文件

func 記錄在 C99 中標準,第 6.4.2.2/1 節。 FUNCTION 沒有正式記錄,但通常包含在特定於編譯器的文件中。 PRETTY_FUNCTION 記錄在 GCC 文件頁「函數名稱為字串」。

何時使用每個宏

宏的選擇取決於具體要求:

  • 功能簡單name: funcFUNCTION 就夠了。
  • 帶簽名的複雜函數名稱(僅限C): PRETTY_FUNCTION
  • C99 之前或非C 11 相容性: FUNCTION(如果編譯器支援)
  • 最大可移植性: func

以上是如何在「__func__」、「__FUNCTION__」和「__PRETTY_FUNCTION__」之間進行選擇以存取 C 和 C 語言中的函數名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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