C 程式可以取得標準函式庫中定義的函數的位址嗎?標準庫,如果是,在什麼條件下?
不,一般情況下不是。
根據[namespace.std],形成一個指向標準函式庫函數的指標是未指定的行為,除非該函數被指定為可尋址的。這也適用於成員函數。
std::invoke(std::boolalpha, std::cout);
在此範例中,std::boolalpha 是由 [fmtflags.manip] 指定的可尋址函數。因此,這一行格式良好,相當於:
std::cout.setf(std::ios_base::boolalpha);
std::invoke(static_cast<ctype_func>(std::tolower), 'A');
但是,對於
不保證意外輸出,而且程式碼甚至可能無法編譯。這也適用於 C 標準函式庫中宣告的成員函數。
以上是我可以取得 C 語言中標準函式庫函數的位址嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!