exit和std::exitC++有什么区别?我研究了它,但我找不到任何东西.
这两个代码有什么区别:
1:
if(SDL_Init(SDL_INIT_EVERYTHING) != 0)
{
std::cout << "Error: Can't initialize the SDL \n";
exit(EXIT_FAILURE);
}
Run Code Online (Sandbox Code Playgroud)
2:
if(SDL_Init(SDL_INIT_EVERYTHING) != 0)
{
std::cout << "Error: Can't initialize the SDL \n";
std::exit(EXIT_FAILURE);
}
Run Code Online (Sandbox Code Playgroud) 着色器编译失败时,是否需要删除着色器?失败的着色器也包括在这个过程中吗?
像这样:
for(size_t Size = 0; Size < this->Shaders.size(); Size++) //"Shaders" is a vector.
{
glDeleteShader(this->Shaders[Size]);
}
Run Code Online (Sandbox Code Playgroud) 那么,函数名只是指向函数指向起始地址的标签,那么我们可以用不同的名称链接一个函数吗?作为OpenGL API中的一个例子,函数以'gl'开头,我们可以把它变成'GL'吗?我有强迫症,这对我来说真的很难.
在x86-32汇编中,参数存储在堆栈中,但在x86-64中,参数存储在寄存器中.这是什么原因?
我们有一个标签:
LABEL:
//Do something.
Run Code Online (Sandbox Code Playgroud)
我们有一个功能.我们希望传递LABEL作为此函数的参数(否则我们无法访问函数中的标签),并且在某些情况下我们想要跳转此标签.可能吗?
我举一个例子(伪代码)来澄清:
GameMenu: //This part will be executed when program runs
//Go in a loop and continue until user press to [ENTER] key
while(Game.running) //Main loop for game
{
Game.setKey(GameMenu, [ESCAPE]); //If user press to [ESCAPE] jump into GameMenu
//And some other stuff for game
}
Run Code Online (Sandbox Code Playgroud) 我是OpenGL的初学者,我编写了一个顶点着色器并执行其他操作,例如编译着色器.
顶点着色器:
in vec4 vPosition;
in vec4 vColor;
out vec4 Color;
void main(void){
gl_Position = vPosition;
Color = vColor;
}
Run Code Online (Sandbox Code Playgroud)
用C++编写这段代码之后:
GLuint PositionID = glGetAttribLocation(SProgram, "vPosition");
GLuint ColorID = glGetAttribLocation(SProgram, "vColor");
cout << "vPosition location: " << PositionID << endl << "vColor location: " << ColorID << endl;
Run Code Online (Sandbox Code Playgroud)
结果非常有趣,两个相同的位置:
vPosition location: 4294967295
vColor location: 4294967295
Run Code Online (Sandbox Code Playgroud)
那是什么原因?