理解差異:PRETTY_FUNCTION__、__FUNCTION__ 和__func
在程式設計中,存取有關目前函數的資訊對於調試、日誌記錄和其他目的很有用。 C 和 C 語言中三個常用的識別碼提供此功能:__PRETTY_FUNCTION__、__FUNCTION__ 和 __func__。每個都有其獨特的特徵,值得理解。
__func__:來自C99 的標準標識符
在C99 中定義,func 是一個隱式聲明的標識符擴展為包含使用它的函數名稱的字元數組。作為聲明的標識符,func 的行為與預處理器巨集不同。
__FUNCTION__:預標準擴展
受到C 編譯器的廣泛支持,例如gcc 和Visual C ,FUNCTION 嚴格來說不是C 的一部分標準。它的行為通常與 __func__ 類似,但編譯器之間可能會有一些不一致。
__PRETTY_FUNCTION__:GCC 擴充
PRETTY_FUNCTION 是 gcc 特定的與 __FUNCTION__ 相當的副檔名。然而,對於 C 函數,它會傳回「漂亮」的名稱,其中包括函數的簽名。
選擇正確的識別碼
選擇要使用的識別碼主要取決於支援和功能要求:
查閱特定的編譯器文件也很重要非標準擴展,如FUNCTION 和__PRETTY_FUNCTION__。例如,Visual C 提供類似的擴展,如 __FUNCSIG__。
以上是`__PRETTY_FUNCTION__`、`__FUNCTION__` 和 `__func__` 有什麼區別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!