Главная » Просмотр файлов » Искусство программирования на Си

Искусство программирования на Си (984073), страница 21

Файл №984073 Искусство программирования на Си (Искусство программирования на Си) 21 страницаИскусство программирования на Си (984073) страница 212015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 21)

Когда наидена иско- Ниже показан пример программы записи в файл уог(1 01 1 < паг 1++> мая запись, мы обновляем строковую величину в копии Вначале создается фиктивный индекс, далее при сохра( 11(1х[1).веу == аевхта1> нашей структуры в памяти, вызываем функцию (аее)г, ненни записей ведется учет сдвига относительно начачтобы пай~и точку, откуда была считана запись, и за- ла файла для каждой' из них путем вызова функции йе[1 ( гхр агх[ 11; писываем измененную запись в файл. В нашем приме- и сохранения результата ее работы во временной струк- Ьгеакп Хра лги ие и из ие вмиг дана их Глава 6 ( гх[па1.хеу агпз(поедя[0)>Г гх[па).оттает агп1(япгда[1 П па++; ) > И в завершение этого раздела продемонстрируем набросок программы лля поиска и чтения определенной записи. Предполагается, что список индексов уже считая и сохранен в массиве!х предшествующей программой. Искомая запись должна соответствовать целой величине, находящейся в переменной яеейта): Пересмотренныа лзьх С Часть 1 Страница по иерархическому формату данных (Н ОŠ— ~)ЕЭН)щВ !Вегагс!Вса! дага Гоппа!) находится в 1птегпег по адресу Ь!!р://ЬЫ.пека.в)вс.ейп/.

В атой главе показано, как создавать, записывать и счиСтраница по общему формату данных (СГ)Š— тывать форматированные файлы данных — как тскстосопппоп бата Гоггпаг) находится по адресу Ьмр:// выс, так и двоичныс. Двоичные файлы данных меньше, пккйс.йк(с.пава.йох/сдГ/сйГ Ьош. Ь!ш). и их можно быстрее читать и записывать, в то время как Проект пс(СГ)Е (па!мог(г Согнал Оага Еогтп — род- текстовые файлы гибче и вполне пригодны для практиственник формата СГ)Е) находится по адресу Ьмр:// чсского использования (благодаря своей доступности пзезе.пп!4ага.всаг.ебп/расйайек/пе!сбГ/(пйехдагш1 для чтения).

Формат внешнего представления данных (ХГ)К вЂ” С одного компьютера на другой псрсносимы только Ехгегпа! Оага Кергеьепгагюп) от фирмы Бцп описан в КЕС тщательно разработанные файлы данных. Они облада- 1014 и КЕС 1832. ют такими свойствами, как встроенный номер версии, Базовые правила кодирования (ВЕК вЂ” Вак!с что дает возможность работать с ними без ошибок даже Епсогйп8 Кп!ек) описаны вместе с сопутствующими воп- при расширении програл1м и форматов файлов данных. росами записи абстрактного синтаксиса АБ)Ч.! (АЬктгаст Хорошо написанные программы для чтения файлов Бупгах )Чо!аг!оп) в стандартах Х.409 и !БО8825. данных должны проверять номер версии файла и друЕсли вас интересуют форматы сжатых файлов дан- гие структурныс подробности в процессе его чтения и ных, отлично подойдет список ЕА() (Ггеццпйу ак)гег) выводить полсзныс сообщения об ошибках.

ццекбоп — ответы на часто задаваемые вопросы) по В общем случае в файле данные представляются Исправление кода программ В ЭТОЙ ГЛАВЕ ° Обратимся к диагностике ° Поиск и исправление распространенных ошибок ° Программные средства отладки ° Планируем успех, иреланда неудачи ° Процесс отладки ° Кошмар программиста Ричард Хэзфилд Программирование по своей природе является очень синтаксической ошибкой должны вывести хотя бы одно сложным процессом, требующим напряженной,чм.„;а„...,лнйгнй тйчегхгкоехгрйдбц) нид, Ниже,рбнаГВ н,роземлп ,Г, '-" з; ~',„',,',",б',!:,;:.'-;,,„С з ",*'...-.':з';,)" '»-",~";;,'.!:.„ Пересмоп<рсннма язмк Г Ий < часть < И< прон <ение нови программ мощности, доступные др) гим пользователям.

Конечно, Поэтому неудивительно, что некоторые компиляторы <роблсл<, чем решают. Например, указание компилято- исходит. Это не было сознательным решением, но я следует разрабатывать программу задолго ло первого выдают диагностические сообщения по поводу про- зу Вот>ап<) Сн т убрать данное предупреждение выгля- замепш, что начал менее придирчиво относиться к иниобрашсния к компилятору независимо от досПпныл граммы, о которой вы думали, что в ней все в полном зит так: циклизации переменных при определении, стех пор как аппаратных срслств Однако, если вы начинаете разра- порядке.

Например, для программы, представленной в стал чаше использовать компилятор Вот(ап<) бочку кода на автономном кол<пьютере, лучше комли- листинге 7.1, компилятор Вог)ап<) выдастдиап<остичес>ргпдма магм -апн Если когда-нибуль вам удастся найти стиль пролировать регулярно.

Таким образом, можно исправлять кое сообщение. Это Указание подааняет выдачу предупрежления, но грал<мирования, при котором для любой програмл<ы все опечатки в процессе набора кода программы, что менее против такого образа действий имеется три возражения компиляторы С стандарта АЫ5! на наиболее придирчиутомитсльно, чем делать это в процессе большого очи- Листинг 7РБ ГенеРиРование компилЯтоРом Во-первых, нужно либо вводить и убирать вывод сооб- вом уровне предупреждений вообще не выволят прсдупстительного сеанса редактирования в конце. диагностического сообщения.

щения для каждой функции, либо принять, что лей- режления, весь мир будет очень вам благодарен. Болсс того, некоторые современные встроенные ре- ) (псзпде <вг«(п. Ь> ствительно бесполезное присвоение никогда нс булет лакторы имеютсвойство, которое называется "заверше- 1>пс1пде <вггзпд.ь> отмечено. Во-вторых, указания специфичны для каж- Использование более одного компилятора нис кода", — они запрашивают у автора каждыи аргу- аого компилятора па определению. Теоретически различные реализации могут продуцировать сколько лпе иалп(оо1<)) л<ент функции и предлагают выбор полей структуры, предполагается, что компилятор игнорирует нсопознан- уголно лиагностичсских сооб<цений (при обязательной ИМЯ КОтОРОй ТОЛЬКО ЧтО бЫЛО НабРаНО.

ЭтО СВОйСтВО алев Г 1вп = Е ° ные указания, но на практике это не всегда так. '1то диагностике синтаксических ошибок и нарушений огочснь экономит время, вносит некиЙ дух тривиальнос- сп Ьп(1 ()ага> = (О>; если данное указание означает что-то совссл< другое лля раничительных условий), правильно компилиРуя коР- ти в залачу программирования и является дюкс забав- 1(((деев(Ьпг(ег, в1яво( Ьпг(ег, все(п) аругого компилятора? Указание привязывает програм- рсктныи код. Использование более одного компилятоным, особенно когда работает неправильно. Нередко ° нвы) ) му к конкретному компилятору, а это плохо для перс ра может помочь вам определить проблему в своеи база данных "завершение кода" строится при компиля( 1еп = вгг1еп(ьп((ег)< носимости. для л<оей работы переносимость является программе.

Конечно, при этом требуется, чтобы проции. Поэтому частая компиляция позволяет экономить обычным требованием, поэтому такое Решение непри- грамма была переносимой, что наиболее вероятно толь- гас<(я( Ислраняенне кода лонер вон Лереснотреннин яянк С Часть ! Ваш друг ЫП1 ° ВОКЕА(ЧО С++ 55Е Ьсс32 -А -и йю.с ° Мюгозой У<зца! С++ 5.0/б О: с! -Ул -%4 тоо.с ° О(н(О С/Ое!ог<е С: йсс -ур -5уа!! -апя -рейапбс Уоо.с Метод "сверху-вниз" Из-за плохого синтаксиса компилятор может ззпутать- Мно<о лет наззд, пытаясь ускорить компиляцию, ктото решил вынести средства анализа качества программы из компилятора С и поместить нл в отлельную ути- (Я не привожу остальных 41! найденных ошибок, лигу.

Эта отлельная утилита бьшз названа Вп(, и идея и все в зц)!о.)х Многие ошибки относятся к неиспользаключалась в том, что вы быстро компилируете свою зуемым константам или прототипам функций.) Снижспрограмму до тех пор, пока она худо-бедно работает.

а ние в программе ЕСЕ(п< уровня серьезности ошибок от ко компиляция, поэтому они устанавливают уровень предупреждений так, чтобы полностью исключить их! Но, в конце концов, такая страусиная политика им не поможет. Сгоревший телефонный счет не означает, что вы не должны платить деньги телефонной компании, это означает только, что вы нс знаете, сколько именно вы должны. Точно так же, убрав вывод предупреждений, вы не устранястс вызывающую их проблему.

Если сущестяуют какие-либо проблемы в программе, то чем раньше мы об этом узнаем, тем лучше. Установки вашего компилятора следует сделать настолько придирчивыми и строгими, насколько это возможно. Если есть установка "вечно всем неловольный", используйте ее. Некоторые авторы рекомендуют использовать ключ, имеющийся во многих компиляторах, при использовании которого все предупреждения представляются как ошибки, но я не захожу столь далеко. Кроме того, некоторые компиляторы генерируют предупреждения там, где многие из нас склонны говорить скорее о воп- , ЦОСДХ СХЫ ПеооВЦПЕнг дйарао,би<(чаЮт вцахтйлойзиИ,,ВОРПЗ,„ВЛЛЦ будут выполняться более чем в одной системе, то, по всей вероятности, вы будете стремиться к А)ч51-программе, и в этом случае установки опций АХЫ С в вашем компиляторе особенно важны.

Современные компиляторы могут предупредить вас о непереносимых конструкциях всех типов, если вы сооб<ците им об этой необходимости. Зта книга не рассматривает конкретные <ьтатформь< или компиляторы. Тем не менее, ниже приведены А)Ч51- кпючи (при максимально высоком уровне выдачи предупреждений) для наиболее популярных компиляторов на микрокомпьютерах: тельно, поскольку диагностика по сути своей склонна к ложным выводам. Поэтому в такой ситуации лучше всего исправить сначала первую ошибку, а затем откомп«пировать программу снова.

Между прочим, данное явление присуще не только языку С. Много лет назад мой друг жаловался на то, что его компилятор СОВОЕ вывел более 3 тыс. сообщений об ошибках, когда в одном месте своей программы слопал орфографическую ошибку в слове Е)н(У)ВО(ЧМЕ(н(Т. После исправления этой ошибки число сообщений уменьшилось до более управляелюй величины (ЗОО). свстемы, аа список глобальных переменных ве садерквт глобальных переменных 111езувеев.

Вызываемая фуахцвя вспользует внутреннее состояаве, ва список глобальаых аеременаых, который был проверен, ае содерквт аеременвне (асегаа1агаее ( -(асегаа1д1аЬв зааретвт выдачу этого сообвеавя). Ье11о.с<5<3< Прв вызове функцвв рггасу возмохао аедокумевтвроваваае взмевенве состояавя файловой свстемы : рггагг('Ве11а ыасбуа" ) Саобвевве а ведокумевтврававаай модвфвхацвв файловой свстемы (првмеаенное х неопределенной функцвв арв выставвевыом набаонаб) (-мобШеауа зааретвт выдачу этого саобвеавя). Проверка эвковчеыа, в коде абыврукемо 413 оммбок Пересмотргньяи хзах С ПИ— Часп ! Я не агитирую именно за ЕС(зпг — просто так получилось, что я ее использую.

Характеристики

Тип файла
DJVU-файл
Размер
12,26 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6439
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее