下面的着色器被称为一个字符串和一个以零结尾的字符串。

着色器:

const GLchar* VertexShader =
{
    "#version 330\n"\

    "layout(location=0) in vec4 in_Position;\n"\
    "layout(location=1) in vec4 in_Color;\n"\
    "out vec4 ex_Color;\n"\

    "void main(void)\n"\
    "{\n"\
    "   gl_Position = in_Position;\n"\
    "   ex_Color = in_Color;\n"\
    "}\n"
};

我的问题是:
  • 每行末尾的斜杠是什么意思?而且,为什么最后一行没有斜杠?
  • 着色器中有多个字符串,为什么据说着色器只有一个字符串?
  • 为什么据说它是一个以空值结尾的字符串? (因为没有'\ 0')
  • 最佳答案



    这是一行的延续,表示当前行在下一行继续。



    顺序字符串文字会折叠为一个。因此"ab" "c"变成"abc"



    字符串文字以null结尾。因此"ab"实际上是{'a', 'b', '\0'}。请注意,当折叠字符串文字时,将删除除最后一个隐式空终止符以外的所有字符。

    关于c++ - 关于以空值结尾的字符串(混淆),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14717187/

    10-11 22:40
    查看更多