Вы, наверное, уже задались вопросом, что означает первая строка программы на Cи:
#include <stdio.h>
Какова её роль и можно ли обойтись без неё? Строка #include
делает очень важную вещь: она подключает библиотеки уже написанного кода к вашей программе.
Имя подключенной библиотеки идет в угловых скобках (<>)
и носит расширение (.h)
. Если бы не было библиотек, то любое, самое элементарное действие, пришлось бы каждый раз описывать снова и снова. Подключенная нами библиотека printf()
для вывода на экран. То есть, если бы мы не написали строку #include <stdio.h>
, но оставили в теле программы функцию printf (), при попытке запуска мы бы получили ошибку! Потому что без этой библиотеки компилятор не знает, что такое printf()
.
Есть библиотеки стандартные, они составляют словарный запас языка. Функция printf()
не встроена в компьютер, но входит в стандартную библиотеку языка Cи. То есть, некий программист ранее написал её и включил в библиотеку. Теперь другие могут ею пользоваться, не изобретая велосипед. Чтобы компилятор её «понял», подключаем <stdio.h>
.
Есть и другие стандартные библиотеки, используемые в процессе прохождения CS50. Например, библиотека строк string.h, где описаны операции со строками (определение длины, сложение и прочее).
По сравнению с другими популярными языками программирования, количество стандартных библиотек Cи очень невелико. Но есть самописные, чаще всего — более узкоспециализированные библиотеки. Так, библиотека cs50.h
была создана специально для студентов CS50.
Самое время сделать важное замечание: помимо написания программ, решения задач с помощью собственного кода, хороший разработчик обладает еще одним важным навыком: знанием инструментов, уже написанных и умением использовать их (чужие библиотеки), чтобы не тратить время на изобретение «колеса».
Так, если вы находитесь в процессе решения нудной или сложной задачи, которая при этом кажется довольно распространенной, привыкайте задавать себе вопрос: «а не написал ли её решение кто-нибудь другой?» Велики шансы, что так оно и есть, и вы можете найти эту функцию в существующей библиотеке.
В технических терминах, библиотека — это двоичный файл, полученный путем объединения в коллекцию объектных файлов, используя компоновщик. Объектные файлы — это те файлы с расширением (*.o)
, которые вы получаете при компиляции приложений.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ