Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > В чем разница


Автор: yngwie19 2.1.2009, 15:28
Всем привет в чем разница использования следующих способов обнуления структур?
Код

WNDCLASS wc;
ZeroMemory(&wc);

или
Код

WNDCLASS wc = {0};

Автор: Fin 2.1.2009, 16:31
Разница в понимании. Первый вариант только при иницилизации обнуляет структуру, второй вариант динамически обнуляет структуру. В первом случае используются внутрении механизмы, во втором случае отдельная функция.

Автор: vinter 2.1.2009, 16:34
во втором случае ты инициализируешь первый элемент структуры 0, а остальные устанавливаются в 0 автоматом, т.к не указаны значения.
В первом случае вызывается какая-то функция smile подозреваю, что то типа memcpy(wc, sizeof(wc),0);

Автор: cutwater 2.1.2009, 18:58
memset если быть точнее

Добавлено через 1 минуту и 37 секунд
Кстати когда-то наблюдал, при инициализации способом номер два компилятор может оптимизировать до выполнения того же memset, хотя утверждать не могу наверняка.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)