хочу) во всяком случае. Спасибо за советы.

ос вдохновлен темой комментария наэтот ответ.]

Как всем известно, начиная с C99, вызывать функцию, которая не была объявлена, является ошибкой, желательно с правильным прототипом.

Но, выходя за рамки этого, я хочу, чтобы мой компилятор предупреждал меня, если яопределять функция без объявления прототипа в области видимости, предположительно включенная из того же заголовочного файла, который используют вызывающие. (Если только функция не является статической, в этом случае все это является спорным.)

Причина должна быть очевидна: если в заголовке есть объявление прототипа, и оно включено всеми вызывающими, но оно не включено в файл, в котором определена функция, и если фактическое определение функции как-то отличается от внешнего прототипа, то вся проверка прототипа, выполняемая от имени вызывающих абонентов, бесполезна и на самом деле контрпродуктивна. Там есть явная ошибка, но ее совсем не гарантированно поймают.

Существуют ли общие компиляторы, которые могут это проверить? Я пробовал gcc и clang с -Wall, а они нет. (Я бы предположил, что Gimpel lint - если он все еще рядом - сделал бы это, но у меня нет копии.)

В идеале, я бы хотел, чтобы он также настаивал на том, чтобы прототип существовал в отдельном заголовочном файле, но это другой котелок с рыбой, поэтому я не настаиваю на этом. (Причиной этого дополнительного условия может быть то, что некоторые программисты, обеспокоенные гипотетическим предупреждающим сообщением, могут попытаться заставить его замолчать, введя внешний прототип в верхней части.c файл, содержащий определение, которое, опять же, победит цель.)

Ответы на вопрос(1)

Ваш ответ на вопрос