Существует ли бесплатный инструмент (что-то вроде статической проверки), который выполняет проверку типа на основе определения типа для plain C (не C ++) и работает в Linux (иликакой-нибудь бесплатный Unix)?Я знаю о коммерческом: PC-lint / FlexeLint.Это именно то, что я хочу, но это не бесплатно и только для Windows.Вот пример из руководства:
typedef int Count; typedef int Bool; Count n; Bool stop; . . . n = stop ; // tool generates a warning here
Я уже читал это Обеспечить строгую проверку типов в C (строгость типов для typedefs) , и это Есть хорошийспособ заставить несовместимость типов в C? , и я знаю о взломе struct encapsulation, но это не , что я хочу.У меня есть куча кода, и я хочу проверить его на этот тип ошибок.
А как насчет шины ? (Я не проверял, может ли он делать то, что вы хотите. Хотя я сомневаюсь, что это будет.)
Или, альтернативно, как насчет использования типов C99 stdbool.h и bool?
stdbool.h
bool
«lint» изначально был инструментом Unix - больше не входит в стандартные дистрибутивы?
Если нет, gcc -wall предположительно дает большинство тех же предупреждений.
gcc -wall