memcmp中的第三个参数应为sizeof()类型。我用以下内容阅读了这段代码
memcmp(st.magic, "outpt_01",sizeof(st.magic)) == 0 && st.version == 0 )
其中st
是一个结构。
上面调用中第三个参数的类型是什么?它在做什么?
答案 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) {