Третий аргумент в memcmp должен иметь тип sizeof (). Я прочитал этот код со следующим
memcmp(st.magic, "outpt_01",sizeof(st.magic)) == 0 && st.version == 0 )
где st
это структура.
Каков тип третьего параметра в вызове выше? что он делает?
Каков тип третьего параметра в вызове выше?
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) {