BIGLIB
  большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно
 
АСТРОЛОГИЯ
  книги по астрологии
 
КРИМИНАЛ
  книги про криминал
 
ДЕТЕКТИВЫ
  детективы известных
   писателей
 
ФАНТАСТИКА
  фентези, фантастика,   фантастические повести
 
ПРИКЛЮЧЕНИЯ
  книги про приключения,   путешествия
 
ПОЛИТИКА
  книги про политиков,   репрессии
 
ПСИХОЛОГИЯ
  разнообразная литература   по психологии
 
КЛАССИКА
  классическая литература
 
КОМПЬЮТЕРНАЯ
  ЛИТЕРАТУРА
  про компютерное железо,   документация, языки   программирования
 
РЕЛИГИЯ, АТЕИЗМ
  книги про религию
 
ФИЛОСОФИЯ
  книги, которые заставляют   задуматься над   окружающим тебя миром.
 
ЭНЦИКЛОПЕДИИ
  самые интересные   энциклопедии на
   разные темы
 
МЕДИЦИНА
  медицинские книги,   методички,
   народные лечебники
 
КУЛИНАРИЯ
  рецепты тортов,   консервирование,
  все о спиртных
  напитках.
 
СТИХИ
  стихи популярных и не   очень авторов
 
ТВОРЧЕСТВО
  народное творчество,   стихи, песни и т.д.
 
ЮМОР
  анекдоты, приколы,   смешные истории
 
ЛЮБОВНЫЙ РОМАН
  мир высоких чувств и   любовных грез
 
ЭРОТИКА
  эротические рассказы,   книги о технике секса,   кама-сутра и др.




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Turbo C++ Version 1.0 Programmer's Guide
Автор ""
Размер 211728 Байт
Страница 20 из 30
СКАЧАТЬ КНИГУ ЦЕЛИКОМ

Ссылочные типы создают алиасы объектов и  позволяют  переда-
вать функциям аргументы по ссылке.  Традиционно передача ар-
гументов в С выполняется только по значению.  В С++  переда-
вать  аргументы  можно  как  по  значению,  так и по ссылке.
Полную информацию см.  в разделе "Ссылки" на стр.98 оригина-
ла.
    Массивы

     Данный раздел начинает часть главы,  посвященную  расс-
мотрению грамматики структуры фраз языка;  описание различий
между грамматическими правилами  лексики  и  структуры  фраз
языка см. на стр.4.

      Объявление

    type декларатор [<выражение-типа-константы>]

     объявляет масив, состоящий из элементов типа type. Мас-
сив в С состоит из непрерывной области  памяти,  по  размеру
позволяющей в точности разместить все его элементы.

     Если в  деклараторе  массива  задано выражение,  то при
еговычислении должна получаться  положительная целочисленная
константа.  Получившееся  значение  представляет собой число
элементов массива.  Каждый из элементовмассива нумеруется от
0 до числа элементов массива, минус единица.

     Многомерные массивы создаются путем объявления массивов
из элементов типа массив. Таким образом, двумерный массив из
пяти строк и семи столбцов с именем alpha объявляется следу-
ющим образом:

    type alpha [5] [7];

     В определенном контексте первый декларатор  массива  из
нескольких  может  не  иметь выражения в квадратных скобках.

                           - 58 -
Такой массив имеет неопределенный  размер.  Контекстом,  где
допустимо такое положение, является тот случай, когдадля ре-
зервирования памяти размер массива не  требуется.  Например,
для  объявление  объекта  типа  массива extern точный размер
массива не требуется; не требуется он и при передаче функции
параметра типа массива.  Будучи специальным расширением ANSI
C,  Turbo C также позволяет объявлятьв  качестве  последнего
элемента  структуры  массив  неопределенного размера.  Такой
массив не увеличивает размера структуры,  а для того,  чтобы
обеспечить правильное выравнивание структуры,  ее можно спе-
циально дополнить символами-заполнителями.  Такие  структуры
обычно  используются  при динамическом распределении памяти,
когда для правильного резервирования области памяти к разме-
ру структуры следует явно прибавить фактический размер необ-
ходимого массива.

     За исключением использования массива в качестве операн-
да   операции  sizeof  или  &,  выражение  с  типом  массива
преобразуется в константу-указатель на первый элемент масси-
ва.

Функции

     Функции представляют  собой центральный вопрос програм-
мирования на Turbo C++.  Такие языки  программирования,  как
Паскаль,  делают  различие между процедурами и функциями.  В
Turbo C++ функции играют обе роли.

   Объявления и определения

     Каждая программа  должна  иметь  одну  внешнюю  функцию
main,  содержащую  точку  входа в программу.  Обычно функции
объявляютсякак прототипы в стандартных или создаваемых поль-
зователем  файлах  заголовка,  либо  в файлах программы.  По
умолчанию функции имеют тип extern,  и доступ к ним возможен
из  любого  файла  программы.  Функция может быть ограничена
спецификатором класса памяти static (см. стр. 32 оригинала).

     Функции объявляются в исходных  файлах,  либо  делаются
доступными при компоновке с откомпилированными библиотеками.

     В С++  вы  должны всегда пользоваться прототипами функ-
ции. Мы рекомендуем также всегда использовать их и в С.

     Данная функция может быть объявлена  в  программе  нес-
колько раз, при условии, что эти объявлениясовместимы. Неоп-
ределяющие объявления функции, использующие формат прототипа
функции предоставляют Turbo C++ детальную информацию о пара-
метрах,  что позволяет лучшее управление числом  аргументов,
контролем их типа и преобразованиями типов.

     За исключением перегрузки функции в С++, допустимым яв-
ляется только одно объявление данной  функции  в  программе.
Объявления, если они имеются, должны соответствовать опреде-
лению функции.  (Существенным различием между определением и
объявлением является то, что определение содержит собственно
тело функции.)

    Объявления и прототипы





В оригинальном стиле объявлений Кернигэна и Ритчи функ- ция могла быть либо объявлена неявно, по ее вызову, либо яв- но: func() где type - это опциональный тип возврата, по умолчанию - 59 - равный int. Можно объявить функцию с любым типом возврата, за исключениемтипов массива или функции. Такой подход не позволяет компилятору контролировать соответствие типа или количества используемыхпри вызове функции аргументов объяв- лению. Эта задача упрощается благодаря введению прототипа функции со следующим синтаксисом объявления: func(список-деклараторов-параметров) При помощи IDE или опции компилятора командной строки можно разрешить выдачу следующего предупреждения: "Function called without a prototype" ("Функция вызывается без прото- типа"). Деклараторы определяют типы каждого параметра функции. Компилятор использует эту информацию для контроля достовер- ности вызова функции. Компилятор также может приводить аргу- менты к нужному типу. Предположим, что у вас имеется следую- щий фрагмент кода: long lmax(long v1, long v2); /* прототип */ main() (* int limit = 32; char ch = 'A'; long mval; mval = lmax(limit,ch): /* вызов функции */ Поскольку данная программа имеет прототип функции для lmax, данная программа преобразовывает limit и ch к типу long по стандартным правилам присвоения, прежде чем помес- тить их в стекдля вызова lmax.Без прототипа функции limit и ch были бы помещены в стек как целое и символьное значения, соответственно; в этом случае стек, переданный lmax, не со- ответствовал бы по размеру и содержимому тому, что ожидает на входе lmax, что привело бы к возникновению проблем. Клас- сический стиль объявлений не позволяет выполнять контроль типа и числа параметров, поэтому использование прототипов функций существенно упрощает отслеживаниепрограммных ошибок. Прототипы функций также упрощают документирование кодов программы. Например, функция strcpy принимает два параметра: исходную строку и строку назначения. Вопрос, где какая из них? Прототип функции char *strcpy(char *dest, char *source); проясняет этот вопрос. Если файл заголовка содержит прототипы функций, вы можете распечатать этот файл и полу- чить большую часть информации, которая нужна, чтобы написать программу, использующую эти функции. Если включить в пара- метры прототипа вашиидентификаторы, то они будут использо- ваться только в сообщенях об ошибках, и только. Декларатор функции в круглых скобках, содержащий единс- твенное словоvoid, указывает на функцию, вообще не принимающую аргументов: func(void); В С++ func() также означает функцию, не принимающую ар- гументов. stdarg.h содержит макросы, которые можно использовать в функциях, определяемых пользователем, с переменным числом - 60 - параметров. Прототип функции обычно объявляет функцию, принимающую фиксированное число параметров. Для функции С, принимающей переменное число параметров (например, printf) прототип функции может заканчиваться многоточием (...), например: f(int *const, long total, ...) В случае данной формы прототипа фиксированные параметры проверяются во время компиляции, а переменные параметры пе- редаются без контроля типа. Ниже приводятся примеры деклараторов функций и прототипы: int f(); /* В С это функция, возвращащая int, без ин- формации о параметрах. Это "классический стиль" Кернигэна и Ритчи */ int f(); /* В С++ это функция, не принимающая аргументов */ int f(void); /* Функция, возвращающая int и не принима- ющая параметров */


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 28 29 30


adfun.ru









Форум раскрутка сайта и интернет-реклама
реклама - рекламное агентство -
Интернет PR агентство чат и форум
волчат знакомства - сайт знакомств
бесплатные компьютерные игры
фото знакомства
новые стеклопакеты -
качественное остекление балконов
портал - пластиковые окна -
закажите окна пвх в Москве

частная стоматология в Москве:
надежная стоматологическая клиника
протезирование зубов и
отбеливание зубов в стоматологии
Музыка - скачать mp3 музыка
каталог партнерские программы
ручной бесплатный обмен ссылками цифровые камеры цифровые фотоаппараты -
цифровые видеокамеры

театры - заказ билетов в театр -
магазин - продажа компьютеров
в Москве форум Испания - жилье -
недвижимость в испании

турфирма - испания туры
Переводы - бюро переводов
Законы - закон о товарных знаках,
Грузовые перевозки. АсМАП. Дальнобой закон о рекламе
Интернет казино
реклама на форуме и контекстная реклама
на Яндексе Баннерная сеть и
интернет каталог сайтов Holiday.Ru
Форумы политика, лучшие анекдоты
знакомства.