-2

memcmp の 3 番目の引数は、sizeof() 型である必要があります。私はこのコードを次のように読みました

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

st構造体です。

上記の呼び出しの 3 番目のパラメーターの型は何ですか? それは何をしているのですか?

4

1 に答える 1

1

上記の呼び出しの 3 番目のパラメーターの型は何ですか?

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 に答える