Анализирующие аргумент помощники для C/Unix

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null.

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

37
задан Jonathan Leffler 5 April 2019 в 16:37
поделиться

4 ответа

GNU имеет gengetopt, который генерирует код для структуры данных опций и эти getopt_long код, чтобы проанализировать командную строку и заполнить структуру.. Довольно легко учиться и работы хорошо.

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

Это обеспечивает семантику стиля GNU (очевидно), и является достаточно маленьким для простого включения с проектом для распределения, если Вы не уверены в среде сборки своей аудитории.

15
ответ дан dmckee 27 November 2019 в 05:03
поделиться

Как говорится, "стандарт лучше, чем лучше". Таким образом, я всегда использую getopt_long () и что-либо, что является non-GNOME/glibby и бойким на чем-либо, что делает.

По той же причине я всегда использую optparse в приложениях Python, даже при том, что это имеет много недостающих возможностей относительно getopt_long ()..., но это - стандарт Python.

4
ответ дан Peter Mortensen 27 November 2019 в 05:03
поделиться

popt отказался для длинный время - парсинг аргумента был объединен в glib начиная с версии 2.6 три года назад.

я использую glib синтаксический анализатор или порт Python getopt.

2
ответ дан John Millikin 27 November 2019 в 05:03
поделиться

Мне действительно нравится библиотека TCLAP, потому что это очень гибко и просто в использовании. Это также абсолютно основано на шаблоне, таким образом, это - библиотека только для заголовка.

Моя ошибка: Вы сказали C, и я отправил библиотеку C++...

0
ответ дан Peter Mortensen 27 November 2019 в 05:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: