C memcmp第三个参数类型

时间:2014-08-25 08:16:14

标签: c++ c parameters sizeof memcmp

memcmp中的第三个参数应为sizeof()类型。我用以下内容阅读了这段代码

memcmp(st.magic, "outpt_01",sizeof(st.magic)) == 0 && st.version == 0 )

其中st是一个结构。

上面调用中第三个参数的类型是什么?它在做什么?

1 个答案:

答案 0 :(得分:1)

上面调用中第三个参数的类型是什么?

size_t要比较的字节数。

它在做什么?

if (sizeof(st.magic) == 0 && st.version == 0)
    memcmp(st.magic, "outpt_01", 1);
else
    memcmp(st.magic, "outpt_01", 0);

正如@JoachimPileborg所指出的,有一个拼写错误:

memcmp(st.magic, "outpt_01",sizeof(st.magic)) == 0 && st.version == 0 )

----------------------------------------------- ------------------------- ^额外的右括号

或者它是像(更有意义)的条件的一部分:

if (memcmp(st.magic, "outpt_01",sizeof(st.magic)) == 0 && st.version == 0) {