Я использую встроенный компилятор XC8 C (для микропроцессоров PIC). Допускается следующее:
bit foo(){
//...
}
но, будучи нестандартным C, статический анализатор Splint выдает следующую ошибку:
Ошибка синтаксического анализа: объявление не функции: бит: "-----------------------------------------------------" внутр.
А файл/строка ошибки — это прототип функции в соответствующем файле .h.
Как я могу это исправить, чтобы Splint мог анализировать остальные файлы? Я думаю, что может быть два пути:
Кажется, я помню, что видел флаг, который можно передать в Splint через CLI, который говорит ему заменить заданный нестандартный тип стандартным типом (например, бит на беззнаковый символ), но сейчас я его вообще не могу найти!
Кроме того, возможно, есть альтернативный способ написания кода c, который удовлетворяет требованиям ANSI-C, но при этом позволяет XC8 интерпретировать возвращаемый тип как
bit
?
Ход выполнения:
Я нашел следующее на форуме, но я не могу найти информацию о том, как использовать флаг -D в вручную:
Чтобы игнорировать ключевое слово, добавьте -Dnonstandardkeyword=, чтобы препроцессор удалил его.
А также
используйте -Dspecialtype=int, чтобы сделать анализ пользовательского типа как int.