Я хочу, чтобы иметь возможность создавать набор функций в файле заголовка, который я мог бы включить # в одной из моих программ на C.Как создать файлы заголовков C
ответ
- Откройте ваш любимый текстовый редактор
- Создайте новый файл с именем whatever.h
- Положите прототипы функций в нем
DONE.
Пример whatever.h
#ifndef WHATEVER_H_INCLUDED
#define WHATEVER_H_INCLUDED
int f(int a);
#endif
Примечание: включают в себя защитные ограждения (команды препроцессора) добавлен благодаря LuKe. Они избегают включения одного и того же заголовочного файла дважды в одну и ту же компиляцию. Другая возможность (также упоминаемая в комментариях) заключается в добавлении #pragma once
, но она не гарантируется для каждого компилятора.
Пример whatever.c
#include "whatever.h"
int f(int a) { return a + 1; }
И тогда вы можете включить «whatever.h» в любой другой .c файл и связать его с объектным файлом whatever.c в.
Как это:
sample.c
#include "whatever.h"
int main(int argc, char **argv)
{
printf("%d\n", f(2)); /* prints 3 */
return 0;
}
Для его компиляции (если вы используете GCC):
$ gcc -c whatever.c -o whatever.o
$ gcc -c sample.c -o sample.o
Чтобы связать файлы для создания исполняемого файла:
$ gcc sample.o whatever.o -o sample
Вы можете проверить образец:
$ ./sample
3
$
, возможно, вы захотите упомянуть защитников заголовков – luke
@luke: Большое спасибо. Не знаю, что такое охранники. Теперь отправляемся в google. Еще раз спасибо. –
@ luke: О! Понимаю. Хорошая точка зрения. Собираемся добавить их. –
Файлы заголовка могут содержать любой действительный код C, поскольку перед компиляцией они доставляются в блок компиляции предварительным процессором.
Если файл заголовка содержит функцию и включен несколькими файлами .c
, каждый файл .c
получит копию этой функции и создаст для нее символ. Компилятор будет жаловаться на дубликаты символов.
Технически возможно создавать функции static
в файле заголовка для включения в несколько файлов .c
. Хотя это, как правило, не выполняется, потому что он прерывается от соглашения, что код найден в .c
файлах и объявления находятся в .h
файлах.
См. Обсуждения в C/C++: Static function in header file, what does it mean? для более подробного объяснения.
- 1. Файлы заголовков в C
- 2. Включая файлы заголовков C++
- 3. Файлы заголовков C++ не найдены
- 4. Включая файлы заголовков в C
- 5. Файлы заголовков C++ без расширения
- 6. loadlibrary и файлы заголовков C++
- 7. Файлы заголовков C++ простой вопрос
- 8. Как получить файлы заголовков в C++
- 9. Как связать файлы заголовков в C++
- 10. Как комментировать файлы заголовков?
- 11. Как организовать файлы заголовков
- 12. Как использовать файлы заголовков?
- 13. Обратные файлы заголовков/ссылки
- 14. Извлечь файлы cookie из заголовков ответов C#
- 15. Основные stucture проекта C/C++ (файлы заголовков и CPP файлы)
- 16. makefile: как указать файлы заголовков
- 17. Как создать шаблоны заголовков VC++ и исходные файлы в VS2010
- 18. Как обрабатывать файлы cpp и файлы заголовков
- 19. Как создать обзор файлов заголовков в c?
- 20. Compile Файлы заголовков
- 21. CMake конфликтующие файлы заголовков
- 22. создать заголовочные файлы в C++
- 23. Как создать/найти файлы заголовков в OpenOffice SDK 3.3.x
- 24. Libdvbcsa, отсутствующие файлы заголовков
- 25. Файлы заголовков Xcode
- 26. файлы заголовков Mystery
- 27. Файлы заголовков Структура
- 28. Файлы заголовков C и компиляция/привязка
- 29. файлы заголовков, не распознанные в C++
- 30. Где файлы заголовков для C в Xcode?
с текстовым редактором? – stefanB
Если я следую должным образом, то вы хотите создать библиотеку, похожую на стандартные библиотеки C, чтобы вы включали заголовочный файл с определениями функций, а затем ссылались на эту библиотеку при создании окончательного исполняемого файла. Это правильно? –
Да, вы правы. – user340838