LINUX.ORG.RU

Наилучшая стратегия обработки ошибок в Си

 


1

4

Нагуглил, что рекомендуют сделать enum и какое-то текстовое представление, которое можно будет получить через коды. В общем, на сколько я понял что-то вроде errno. Но вот в чём вопрос: как лучше сделать, чтобы функция возвращала код ошибки

 MYERROR create_some_thing (SOME_THING **ptr/*other parameters*/);
глобальная переменная
 SOME_THING *create_some_thing (/*other parameters*/);
или указатель в списке параметров функций?
 SOME_THING *create_some_thing (/*other parameters*/, MYERROR* ptr);

Deleted

Последнее исправление: av0r (всего исправлений: 2)
Ответ на: комментарий от Iron_Bug

Я не рекламирую VS, я говорю что ее удобство несравнимо с обычными тулами среднего сишника. CodeBlocks нормален для мелких проектов и студенческих поделок. Ковырял его пару лет назад, не думаю что он сильно изменился.

Пример - как мне запустить вот этот конкретный юнит тест из сета? В VS элементарно (как и в любом нормальном IDE). А, точно, сишники же не умеют в юнит тесты.

spec_po_kiskam ★★★
()
Ответ на: комментарий от spec_po_kiskam

Ммммм, что мешает тебе запустить вот этот конкретный юнит-тест из сета в виме, чушка? Видимо то, что ты чушка.

anonymous
()
Ответ на: комментарий от spec_po_kiskam

Пример - как мне запустить вот этот конкретный юнит тест из сета? В VS элементарно (как и в любом нормальном IDE). А, точно, сишники же не умеют в юнит тесты.

Если сишники не умеют в юнит-тесты, то после того, как они пересаживаются в VS, они что перестают быть сишниками и, поэтому, начинают уметь в юнит-тесты?

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Если сишники не умеют в юнит-тесты, то после того, как они пересаживаются в VS, они что перестают быть сишниками и, поэтому, начинают уметь в юнит-тесты?

Visual Studio - это замечательная IDE. Однако она не только для разработки на C или цепепе. Она, в первую очередь, для C#. Также она для Visual Basic, Пайфона, JavaScript.

azelipupenko
()
Ответ на: комментарий от eao197

после того, как они пересаживаются в VS, они что перестают быть сишниками

Таки да, перестают. VS не умеет компилить Си-код. Только C++.

Или научилась внезапно?

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Таки да, перестают. VS не умеет компилить Си-код. Только C++.

Говорят, что цепепе является надмножеством C?

azelipupenko
()
Ответ на: комментарий от spec_po_kiskam

Пример - как мне запустить вот этот конкретный юнит тест из сета?

из консоли. 99% вещей делаются в консоли. и не нужны для этого никакие монстрозные софтины. мышевозенье вообще непригодно для серьёзной работы, особенно для крупных проектов. IDE нужно, чтобы редактировать код. всё остальное делается в консоли. и чем больше проект, тем более вероятно он собирается на билд серверах, а не в каких-то там «студиях». а это значит автотулзы и консоль, без вариантов.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от anonymous

Хм... Судя по поверхностным тестам, вполне себе ничего. На VLA споткнулся, но с VLA я всё равно внятно работать не умею, и поэтому не использую.

i-rinat ★★★★★
()
Ответ на: комментарий от spec_po_kiskam

Элементарно:

1. Каждый тест - отдельный проект.

2. В постбилдстепс прописываем запуск теста.

3. Если надо запустить конкретный тест - просто жмешь ребилд на конкретном проекте.

4. Если надо запустить все тесты - жмешь ребилд воркспейс.

5. ??????

6. Юниттесты в Code::Blocks!!!

shkolnick-kun ★★★★★
()
Последнее исправление: shkolnick-kun (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Умела изначально. Тот же маздайный кернел частично компилится в С-режиме. Если мне не изменяет память то С-режим включается правильным расширением имени исходника. При этом например выключается манглинг имен и всякое такое.

cvv ★★★★★
()
Ответ на: комментарий от anonymous

Согласен. Так и есть - на стандарты положен болт

cvv ★★★★★
()
Ответ на: комментарий от spec_po_kiskam

Ты просил как сделать юнит-тесты с возможностью запуска одного из них по выбору - тебе показали, точка.

Кстати, как в случае 2000 тестов ты собрался выбрать только один из них?

shkolnick-kun ★★★★★
()
Ответ на: комментарий от shkolnick-kun

тебе показали

Пока твой метод не тянет как минимум 2к тестов, то это херня.

как в случае 2000 тестов ты собрался выбрать

Внезапно, в нормальных фреймворках тесты можно разбить на категории. Или к каждому проекту в воркспейсе делать тестовый проект.

spec_po_kiskam ★★★
()
Ответ на: комментарий от spec_po_kiskam

Пока твой метод не тянет как минимум 2к тестов, то это херня.

Где пруфы, маня?

shkolnick-kun ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.