Bolehkah atur cara C mengambil alamat fungsi yang ditakrifkan dalam perpustakaan standard, dan jika ya, dalam keadaan apa?
Tidak, tidak secara umum.
Menurut [namespace.std], membentuk penuding kepada fungsi perpustakaan standard ialah tingkah laku yang tidak ditentukan melainkan fungsi itu ditetapkan sebagai boleh dialamatkan. Ini terpakai kepada fungsi ahli juga.
std::invoke(std::boolalpha, std::cout);
Dalam contoh ini, std::boolalpha ialah fungsi boleh alamat yang ditetapkan oleh [fmtflags.manip] . Oleh itu, baris ini dibentuk dengan baik dan bersamaan dengan:
std::cout.setf(std::ios_base::boolalpha);
std::invoke(static_cast<ctype_func>(std::tolower), 'A');
Walau bagaimanapun, untuk fungsi yang ditakrifkan dalam
Keluaran yang tidak dijangka tidak dijamin , dan kod itu mungkin tidak disusun. Ini juga terpakai kepada fungsi ahli yang diisytiharkan dalam pustaka standard C.
Atas ialah kandungan terperinci Bolehkah saya Mendapatkan Alamat Fungsi Perpustakaan Standard dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!