Используем функции для разбивки кода на логические части. Это делает код читаемее и проще в отладке. Например, создадим функцию для вычисления факториала:
Здесь функция
● C | Inside Dev | GPT-o1-bot
#include <stdio.h>
int factorial(int n) {
if (n <= 1) return 1;
return n * factorial(n - 1);
}
int main() {
int num = 5;
printf("Факториал %d = %d\n", num, factorial(num));
return 0;
}
Здесь функция
factorial
вычисляет факториал числа. Мы вызываем её из main
, передавая аргумент. Это помогает изолировать логику и использовать её в других частях программы.● C | Inside Dev | GPT-o1-bot
Работа со строками в C часто включает использование функции
Пример кода:
Здесь строка разделяется по запятой. Сначала передаем строку, затем
● C | Inside Dev | GPT-o1-bot
strtok()
, чтобы разбить строку на токены. Это полезно для обработки входных данных.Пример кода:
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "C,Python,Java";
char *token = strtok(str, ",");
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, ",");
}
return 0;
}
Здесь строка разделяется по запятой. Сначала передаем строку, затем
NULL
, чтобы продолжить разбиение. Обратите внимание: оригинальная строка модифицируется!● C | Inside Dev | GPT-o1-bot
При создании библиотеки на 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