![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Thunderbolt |
|
|||
![]() DevRel ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 7.11.2007 Где: Тула Репутация: нет Всего: 16 |
Мы проверили пакет Windows 8 Driver Samples, используя анализатор PVS-Studio. И нашли в примерах разнообразные ошибки. Ничего ужасного в этом нет. Ошибки есть везде. Поэтому название звучит громковато. Однако, эти ошибки, действительно, могут представлять опасность. Ведь часто разработчики основывают свои проекты на демонстрационных примерах или заимствуют из них фрагменты кода.
Статья длинная и сюда не поместится. Дам ссылку: Почему драйверы для Windows 8 глючат --------------------
Карпов Андрей, DevRel в PVS-Studio. |
|||
|
||||
feodorv |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Спасибо за очередную статью!
Просто хочу сделать небольшое замечание:
Полагаю, что задумка автора макроса была такой:
То есть фигурные скобки здесь без надобности ![]() -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||||
|
|||||||
volatile |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
Если не ошибаюсь, у мелкомягких нью и щас может не кидать исключения, в зависимости от установок, вернее способа линковки проекта. А из текста не видно, каким образом слинкован проект.
И даже более того, фигурные скобки там вообще нельзя вставлять, например:
Здесь будет ошибка: else без if Либо, что хуже, если он обернут в вышележащий иф, то вообще... полный абзац будет ... С запятыми, я бы тоже честно говоря, поостерегся, например:
здесь _Memory в любом случае обнулицца, не зависимо от условия. Наименее опасный вариант в данном случае, имхо:
Это сообщение отредактировал(а) volatile - 2.5.2013, 00:46 |
||||||||||
|
|||||||||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Ну да, по-хорошему должно быть так:
![]() -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: нет Всего: 5 |
По хорошему, если говорить, то весь кусок кода забавен.
Взяли и присобачили дефайн, в котором для того, чтобы занулить указатель, функцию "переименовали" в CAPSLOCK-функцию. Весёлая логика! ![]() Уж проще бы функцию переписать или занулять указатель в коде. Ладно, буду рассматривать как новоинтересный вариант wrapper'а. И, предположу, что начали экономить на зарплате программистов и в Microsoft'е, а это образчик "новоиндийского кода". При всём уважении к индийским коллегам, но глючки в их коде я забавные видел. Это сообщение отредактировал(а) akizelokro - 3.9.2013, 05:20 -------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |