-2

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

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

结构在哪里st

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

4

1 回答 1

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) {
于 2014-08-25T08:23:59.990 回答