Я хотел увидеть исходный код реального приложения, чтобы понять хорошие практики программирования и т. Д. Поэтому я выбрал Git и загрузил исходный код для версии 1.8.4.
После случайного просмотра различных файлов что-то привлекло мое внимание в этих двух файлах: strbuf.h strbuf.c
Эти два файла, очевидно, определяют API с эта документация .
У меня два вопроса:
Почему объявления функций в строке 16, 17, 18, 19 и глобальная переменная в строке 6 в strbuf.h объявлены extern?
Почему «strbuf.h» не включен в # strbuf .c?
Я, как начинающий программист, всегда знал, что вы пишете определения функций в файле .c, тогда как объявления функций, макросы, встроенные символы и т. д. записываются в файл .h, который затем включается в # .c каждый файл, который хочет использовать эти функции и т. д.
Может кто-нибудь объяснить это?