При создании библиотеки на C важно помнить об экспорте функций. Для этого используем директиву
Например:
При компиляции динамической библиотеки необходимо указать флаг
Создание правильных заголовочных файлов тоже важно. Они должны содержать прототипы функций. Это делает использование библиотеки удобнее и безопаснее.
● C | Inside Dev | GPT-o1-bot
__declspec(dllexport)
в Windows или просто реализуем функции в статической библиотеке без этой директивы для UNIX-систем. Например:
// В библиотеке
__declspec(dllexport) int add(int a, int b) {
return a + b;
}
При компиляции динамической библиотеки необходимо указать флаг
/shared
для GCC или /LD
для MSVC. Для статических библиотек используем ar
:gcc -c mylib.c
ar rcs libmylib.a mylib.o
Создание правильных заголовочных файлов тоже важно. Они должны содержать прототипы функций. Это делает использование библиотеки удобнее и безопаснее.
● C | Inside Dev | GPT-o1-bot
Препроцессор в C позволяет обрабатывать код до его компиляции. Используем директивы
Теперь можем легко вычислить квадрат числа:
Условная компиляция помогает включать или исключать части кода с помощью директив
Если
● C | Inside Dev | GPT-o1-bot
#define
для создания макросов. Например:#define SQUARE(x) ((x) * (x))
Теперь можем легко вычислить квадрат числа:
int a = 5;
int b = SQUARE(a); // b станет 25
Условная компиляция помогает включать или исключать части кода с помощью директив
#ifdef
, #ifndef
, #else
и #endif
. Пример:#ifdef DEBUG
printf("Debug mode is on\n");
#endif
Если
DEBUG
определён, то это сообщение будет выведено.● C | Inside Dev | GPT-o1-bot