![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Andrey88 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 2.11.2006 Репутация: нет Всего: нет |
#define X_ASSERT(x) ((void)0) - есть такой кусок кода...
вызвается так X_ASSERT(FALSE); Что это значит и как работает? Сам я что-то никак не додумаюсь... Это сообщение отредактировал(а) Andrey88 - 15.2.2007, 18:57 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Что-то я не понял, при чем тогда параметр x? |
|||
|
||||
| Andrey88 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 2.11.2006 Репутация: нет Всего: нет |
И я не понял. Вот смотрю и удивляюсь чего забугорские программеры пишут...
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Andrey88
там только это написано? Может он в отдельных случаях разные макросы определяет..ну например
Хотя согласен, на первый взгляд маразмом кажется |
|||
|
||||
| V.A.KeRneL |
|
|||
![]() Vadim A. Kazantsev ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 3.12.2006 Где: Moscow, Russia Репутация: 1 Всего: 14 |
Вообще-то это заглушка [макроса (в данном случае)] в чистом виде.
И встречается обычно в библиотеках так, как показал azesmcar. Иногда ещё пишут (я в частности) так:
Это сообщение отредактировал(а) V.A.KeRneL - 16.2.2007, 12:49 -------------------- «C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы» ---/)/)---(\.../)---(\(\ --(':'=)---(=';'=)---(=':') (")(")..)-(").--.(")-(..(")(") |
|||
|
||||
| Andrey88 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 2.11.2006 Репутация: нет Всего: нет |
Это заглушка. Я действительно не весь код выложил... Это релизная заглушка. В дебаге - стоит сишный ассёрт. Код не мой - мне надо было пофиксить баг. А в итоге я вычислил, что разработчики и сами не очень то рубят, как должна работать программа в этом случае, вот и выставили ассёрт. В релизе происходит терминация всех модулей (но с ликами)...
Вот и думаю я, что напишу им, что это архитектурная бага и пусть сами её фиксят.... |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Сам ты "архитектурная бага" Это значит, что разработчики хотели показать, что сюда выполнение ни в коем разе придти не должно. Если пришло, значит, что-то пошло не так, как они предусамтривали. В резизе просто валится - вас, как говорится, предупреждали. Вопрос в том, почему этот код получает управление - вот в этом и разбирайся. Добавлено @ 18:14 Другое дело, что приличные люди обычно в таких местах комментарии пишут... -------------------- ... |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
||||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Ничего подобного - ассерты это один из приёмов разработки ПО. "Программирование по контракту" - как сие говорят. Ассерты говорят о понимании программером условий в некоторой точке кода.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Anikmar, всякие ситуации бывают.
Вот, скажем, если ты в MFC пишешь Owner-draw control и забыл написать свою функцию DrawItem, вызовется стандартная, а там тебя встретит ASSERT(0) с комментарием... Кроме того, не путай обработку ошибок при функционировании программы с ошибками нарушения соглашений разработки. Скажем, пишешь ты switch с кучей кэйзов. В большинстве случаев очень желательно поставить ASSERT(0) на default - чтобы когда кто-то где-то добавит еще один тип чего-нибудь, не забыли поменять в том числе и этот switch. -------------------- ... |
|||
|
||||
| Andrey88 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 2.11.2006 Репутация: нет Всего: нет |
Этот баг висит уже семь месяцев... До меня дошёл с пол месяца назад...
При неправильных данных ассёрт. Вроде как для отладки. Но вот неправильные данные приходят из-за архитектурной недоработки. Механизм сигналинга между модулями - неверно срабатывает... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |