Бен Клеменс - Язык С в XXI веке
Название: | Язык С в XXI веке | |
Автор: | Бен Клеменс | |
Жанр: | Учебники и самоучители по компьютеру, Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), C, C++, C# | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | 2015 | |
ISBN: | 978-5-97060-101-3 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Язык С в XXI веке"
Язык C - не просто фундамент всех современных языков программирования, он и сам - современный язык, идеальный для написания эффективных приложений передового уровня. Последние 20 лет C не стоял на месте. Сам язык и окружающая его экосистема подвергаются пересмотру. Эта книга начинается там, где другие заканчиваются. В ней рассказано, как изменилась функциональность, поддерживаемая любым компилятором, благодаря двум новым стандартам C, вышедшим со времен оригинального ANSI. Цель книги - рассмотреть то, чего нет в других учебниках по C: инструменты и окружение; библиотеки для работы со связанными списками и анализаторами XML; написание удобочитаемого кода с дружественным программным интерфейсом. Издание предназначено для программистов, имеющих опыт работы на каком-либо языке и обладающими базовыми знаниями о С.
Читаем онлайн "Язык С в XXI веке" (ознакомительный отрывок). [Страница - 2]
- 1
- 2
- 3
- 4
- . . .
- последняя (6) »
-
Всегда включайте вывод предупреждений . Даже если вы думаете, что знаете стандарт С
вдоль и поперек, компилятор все равно знает лучше. В старых учебниках С целые страницы
заполнены наставлениями не путать = и == и проверять, что каждая переменная инициализи
руется перед использованием . Будучи автором более современного учебника, я поступлю
проще, сведя все наставления к одному: обязательно включайте предупреждения компиля
тора . Если компилятор рекомендует что-то изменить, не спорьте с ним и не откладывайте
исправление на потом. Сделайте все, чтобы ( 1 ) понять, с чем связано предупреждение, и
( 2 ) исправить код, так чтобы он компилировался вообще без ошибок и предупреждений .
Невразумительность сообщений компилятора давно стала притчей во языцех, поэтому если
с пунктом ( 1 ) возникают сложности , скопируйте текст предупреждения в поисковик - вы уз
наете, сколько народу до вас зашло в тупик, столкнувшись с ним. Возможно , вы захотите
задать флаг -Werror, чтобы компилятор трактовал все предупреждения как ошибки .
П ут и
На моем диске больше 700 ООО файлов, из которых один содержит объявления
функций sqrt и erf, а другой - объектный код откомпилированных функций.
(Чтобы получить грубую оценку количества файлов в РОSIХ-совместимой си
стеме, выполните команду find / -type f 1 wc - 1 . ) Компилятор должен знать, в каких
каталогах искать заголовки и объектные файлы, и эта проблема еще осложняется,
когда мы пользуемся библиотеками, не описанными в стандарте С.
В типичной системе библиотеки могут находиться, по крайней мере, в трех ме
стах.
О Поставщик операционной системы определяет один или два стандартных
каталога, где находятся поставляемые им библиотеки.
О Может существовать каталог, в который системный администратор уста�
навливает пакеты, которые не должны быть перезаписаны при очередном
обновлении ОС поставщиком. Там же могут находиться специальные вер
сии библиотек, подправленные администратором.
О У обычных пользователей обычно нет прав для записи в эти места, поэтому
должна быть возможность использовать библиотеки, находящиеся в их до
машних каталогах.
Что касается стандартных мест, то тут обычно проблем не возникает, компиля
тор знает, где искать стандартную библиотеку С и все установленное вместе с ней.
В стандарте POSIX такие каталоги называются .
Но про все остальное компилятору нужно сказать явно. И тут мы сталкиваемся
с виз / /getenv, a t o i
# i nc l ude < s td i o . h > / / p r i n t f
i n t ma i n ( ) (
char * repstext = getenv ( " reps " ) ;
i n t reps = repstext ? a t o i ( repstext )
10;
cha r *msg = getenv ( " msg" ) ;
i f ( ! ms g ) msg = " H e l l o . " ;
for ( i nt i = O ; i < reps ; i + + )
print f ( " % s \ n " , msg) ;
Как и раньше, мы можем экспортировать переменные , так чтобы они действовал и только
в данной строке ; это еще больше упрощает процесс передачи переменной п рограм ме.
reps = l O msg= " H a " . / getenv
msg= " H a " . / getenv
reps=2 0 msg= " " . / getenv
В ы глядит это странновато , ведь естественно ожидать, что параметры п рограм м ы ука
зы ваются после и м е н и , н о бог с ней , со странностью , зато внутр и самой п рограмм ы
н а м почти ничего не при шлось делать, так что м ы получили именованные параметры
чуть л и не задаром .
Н абравшись побольше о п ыта, вы сможете изучить описанную в POSIX фун кцию getopt
или п редлагаемую GNU функцию a rgp p a r s e , которые позвол я ют обрабатывать входные
параметры обычн ы м способо м .
В make есть также несколько встроенных переменных. Ниже перечислены те из
них (все описаны в POSIX), которые встретятся в рассматриваемых далее правилах.
40
•:•
Уасть 1. Окружение
$@
Полное имя целевого файла. Под целевым понимается файл, который предсто
ит создать, например о-файл, получающийся в результате компиляции с-файла,
или программа, являющаяся результатом компоновки о-файлов.
$*
Имя целевого файла без суффикса. Так, если целевой файл называется ргоg.о, то
$ * содержит prog, а $ * . с принимает значение ргоg.с.
$<
Имя файла, в ходе обработки которого создается текущий целевой файл. Соз
дание файла prog.o, вероятно, обусловлено тем, что недавно изменился файл
prog.c, поэтому $< будет равно prog.c.
Правила
Теперь перенесем внимание на процедуры, выполняемые при обработке файла
makefile, а затем обсудим, как на этот процесс влияют переменные.
Помимо задания переменных, в makefile имеются такие части:
ц ель --">
- 1
- 2
- 3
- 4
- . . .
- последняя (6) »
Книги схожие с «Язык С в XXI веке» по жанру, серии, автору или названию:
Стенли Б Липпман, Жози Лажойе, Барбара Э Му - Язык программирования C++ Жанр: C, C++, C# Год издания: 2014 |
Е. Т. Семенова - Язык программирования Lisp 1.5: Учебное пособие Жанр: Lisp, Scheme Год издания: 1977 |
Лео Броуди - Способ мышления - Форт: Язык и философия для решения задач Жанр: Forth Год издания: 1993 |