-
- Такая запись ведёт сразу к сваливанию в abort(). Какой в этом смысл? И вообще, этот ваш assert() -- поделка студентов, профессионалам это не положено. Они программы без ошибок пишут. Ругается понятно почему -- #define assert(expr) if (expr) fk0(265 знак., 08.07.2011 13:43)
- Смысл есть: switch (i) { case A: ... case B: ... default: assert(0); }. Скажем, в default заходить не должно, вот и отлавливаем через assert. - SciFi(08.07.2011 13:48)
- Любительская паделка! Каждый ассерт сожрёт памяти на: собственно код, строку с выражением ("0"), один раз на файл -- строку с именем файла ("C:\Настройки и Документы\Вася\Рабочий Стол\Мои Программы\Мой Проект\file.c"). Для fk0(427 знак., 08.07.2011 14:54)
- assert не компилируется в release. используется только для отладки, а потому использование его вполне себе приемлемо. - ango(08.07.2011 16:25)
- Чушь от начала и до конца. Если assert не умещается в release, то не уместится и в debug. А если умещается, то ничем не мешает и, наоборот, должен широко использоваться. - fk0(08.07.2011 16:35)
- хм.. ango(846 знак., 08.07.2011 17:16)
- ну тады ждём правильный рецепт - MegaJohn(08.07.2011 16:41)
- Чушь от начала и до конца. Если assert не умещается в release, то не уместится и в debug. А если умещается, то ничем не мешает и, наоборот, должен широко использоваться. - fk0(08.07.2011 16:35)
- assert не компилируется в release. используется только для отладки, а потому использование его вполне себе приемлемо. - ango(08.07.2011 16:25)
- для этого и применяю, а также для отлова использования периферии без иннициализации, выход за рамки массива. Вообщем, всякие некорректные действия на этапе написания ПО - MegaJohn(08.07.2011 13:54)
- Любительская паделка! Каждый ассерт сожрёт памяти на: собственно код, строку с выражением ("0"), один раз на файл -- строку с именем файла ("C:\Настройки и Документы\Вася\Рабочий Стол\Мои Программы\Мой Проект\file.c"). Для fk0(427 знак., 08.07.2011 14:54)
- Смысл есть: switch (i) { case A: ... case B: ... default: assert(0); }. Скажем, в default заходить не должно, вот и отлавливаем через assert. - SciFi(08.07.2011 13:48)
- Ошибки не видно. Но тут есть простор для творчества: ("blah" == 0), ("blah", 0), (!"blah") и т.д. - SciFi(08.07.2011 13:08)
- Такая запись ведёт сразу к сваливанию в abort(). Какой в этом смысл? И вообще, этот ваш assert() -- поделка студентов, профессионалам это не положено. Они программы без ошибок пишут. Ругается понятно почему -- #define assert(expr) if (expr) fk0(265 знак., 08.07.2011 13:43)