C memcmp третий тип параметра

Третий аргумент в memcmp должен иметь тип sizeof (). Я прочитал этот код со следующим

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

где st это структура.

Каков тип третьего параметра в вызове выше? что он делает?

-2

Решение

Каков тип третьего параметра в вызове выше?

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) {
1

Другие решения


По вопросам рекламы [email protected]