Суть повторного использования кода заключается в выполнении обычной операции и ее параметризации, чтобы она могла принимать различные входные данные.
Взять, к примеру, скромный printf
. Представьте, что у вас не было printf
, а было только write
или что-то подобное:
//convert theInt to a string and write it out.
char c[24];
itoa(theInt, c, 10);
puts(c);
Теперь это отстой, когда приходится писать каждый раз, и на самом деле это просто ошибка. Поэтому какой-то умный программист решил, что ему это надоело, и написал лучшую функцию, которая одним махом распечатывает данные на stdout.
printf("%d", theInt);
Вам не нужно быть столь же причудливым, как printf
с его переменными аргументами и форматной строкой. Даже просто простая процедура, такая как:
void print_int(int theInt)
{
char c[24];
itoa(theInt, c, 10);
puts(c);
}
хорошо бы с этим справиться. Таким образом, если вы хотите изменить print_int
, чтобы всегда печатать в stderr, вы можете обновить его так:
void print_int(int theInt)
{
fprintf(stderr, "%d", theInt);
}
и все ваши целые числа теперь будут волшебным образом напечатаны со стандартной ошибкой.
Вы даже можете затем связать эту функцию и другие, которые вы записываете, в библиотеку, которая представляет собой просто набор кода, который вы можете загрузить в свою программу.
Следуя практике повторного использования кода, у вас даже есть база данных для подключения: кто-то создал код для хранения записей на диске, переработал его до тех пор, пока он не стал использоваться другими, и решил назвать его базой данных.
Библиотеки волшебным образом не появляются. Они созданы программистами, чтобы облегчить им жизнь и позволить им работать быстрее.