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