我正在學習 GLFW 3.3,并且正如函式描述中所說:
回傳先前設定的回呼,如果未設定回呼,則回傳 NULL。
來源:[https://www.glfw.org/docs/3.3/group__init.html#gaff45816610d53f0b83656092a4034f40]
現在我要做的是了解它是什么型別的價值。我試圖將其理解為好像回傳值是指向函式的指標,因為正如檔案中關于 GLFWerrorfun 型別所述:
typedef void(* GLFWerrorfun) (int, const char *)這是錯誤回呼的函式指標型別。
來源:[https://www.glfw.org/docs/3.3/group__init.html#ga6b8a2639706d5c409fc1287e8f55e928]
這是我的代碼:
#define GLFW_DLL
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
void handleErrorCallback (int code, const char * description)
{
// Code
}
int main (int argc, char * argv[])
{
std::cout << glfwSetErrorCallback (handleErrorCallback) << std::endl;
std::cout << glfwSetErrorCallback (NULL) << std::endl;
return 0;
}
寫在控制臺上的第一個值是 0。我得到它,因為回傳了 NULL,因為還沒有設定回呼。
控制臺上寫的第二個值是1,這讓我很困惑:GLFWerrorfun 回傳值是如何轉換為整數的?我所看到的是,當回呼函式被設定時,它總是回傳“1”,而當它沒有被設定時,它總是回傳“0”。
uj5u.com熱心網友回復:
glfwSetErrorCallback 回傳一個被解釋為整數的指標。
我認為這篇文章會有所幫助:How to print function pointers with cout?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/339973.html
