You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向接收指针参数的函数传递参数时能否进行类型转换?

向接收指针参数的函数传递参数时能否进行类型转换?

咱们先聊个OpenGL开发里特别常见的场景,你大概率也遇见过:

你会用到像void glUseProgram(GLuint program);这类函数,它们的参数都是GLuint无符号整数类型;但尴尬的是,OpenGL压根没提供glGetUint这种专门获取无符号整数的接口,你要拿相关参数的话,只能用glGetInteger这个针对有符号整数的函数。

就比如你写了这么一段代码:

class Foo {
public:
    Foo() {
        glGetIntegerv(GL_CURRENT_PROGRAM, &program);
    }
private:
    GLuint program;
};

这里就藏着个疑问:glGetIntegerv的第二个参数要求传入GLint*类型的指针,但我们传的是GLuint*类型的指针(也就是&program),这种给接收指针参数的函数传递不同类型指针的情况,到底能不能直接做类型转换呢?

备注:内容来源于stack exchange,提问作者Gregorio Litenstein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:54:32