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




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

     int p(int,long) /* Функция с типомвозврата int,принима-
ющая два параметра, первый типа int, и второй типа long */

     int pascal q(void);  /* функция типа pascal, возвращаю-
щая int и не принимающая параметров */

     char far  *s(char  *source,  int  kind);  /*   Функция,
возвращающая дальний указатель на char и принимающая два па-
раметра: превый - дальний указатель на char, а второй int */

     int printf(char *format,...);  /* Функция, возвращающая
int  и  принимающая фиксированный параметр типа указатель на
char и любое число  дополнительных  параметров  неизвестного
типа */

     int (*fp)(int);  /* Указатель на функцию,  возвращающую
int и принимающую один параметр int */

  Объявления

     Общий синтаксис для определений внешних функций  приво-
дится в следующей таблице:

 Определения внешних функций      Таблица 1.18
 -----------------------------------------------------------
    файл:
внешнее-определение
файл   внешнее-определение

    внешнее-определение:
       определение-функции
       объявление
       asm-оператор

    определение-функции:
  <спецификаторы-объявления> декларатор <список-объявления>
  составной-оператор
 -----------------------------------------------------------

     В целом,  определение функции состоит из следующих раз-
делов (грамматика позволяет создание и более  сложных  конс-
трукций):


                           - 61 -
     1. Опциональные спецификаторы класса памяти: extern или
static. Умолчанием является extern.

     2. Тип возврата,  возможно  void.  Умолчанием  является
int.

      Элементы из пунктов 1 и 2 можно взаимно комбинировать.

     3. Опциональные модификаторы: pascal, cdecl, interrupt,
near,  far, huge. Умолчание зависит от модели памяти и уста-
новленных опций компилятора.

     4. Имя функции.

     5. Список  объявления  параметров,  который  может быть
пустым,  заключенный в круглые скобки.  В с  предпочтительно
обозначать отсутствие параметров записью func(void). В С до-
пускается и старый стиль записи func(),  но это может приво-
дить к неоднозначностям и возможным ошибкам.  В С++ выдается
соответствующее предупреждение.

     6. Тело функции, представляющее собой коды, выполняемые
при вызове функции.

       Объявления формальных параметров

     Список объявления  формальных  параметров имеет синтак-
сис, аналогичный синтаксису обычных объявлений идентификато-
ров. ниже приводится несколько примеров:

int func(void) (*     // аргументы отсутствуют

 С++int func(T! t1, T2 t2, T3 t3=1)  (*
     // три простых параметра,
     // один из которых с аргументо
     // по умолчанию

 C++int func(T1* ptr1, T2& tref)   (*
     // аргументы указатель и ссылк

int func(register int i) (*   // запрос регистра для аргумен

int func(char *str,...) (* /* один строковый аргумент ипе-
 ременное число прочих аргументов, либо фиксирован-
 ное число аргументов с переменными типами */

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





Многоточие (...) означает, что функция будет вызываться в разных случаях с различными наборами аргументов. Многоточие может следовать за подсписком объявлений известных аргумен- тов. Такая форма прототипа уменьшает число выполняемых ком- пилятором проверок. Все объявленные параметры автоматически получают контекст, а также длительность данной функции. Единственным допустимым для них классом спецификатора является register. В деклараторах формальных параметров могут использоваться модификаторы const и volatile. Вызовы функций и преобразования аргументов - 62 - Функция вызывается с фактическими аргументами, помещенными в той же последовательности,что и соответствующие им формаль- ные аргументы. преобразования фактических аргументов выпол- няется,как если бы ониинициализировались значениями формаль- ных аргументов при объявлении типов. Ниже приводится краткое изложение правил, управляющих обработкой в Turbo C++ модификаторов языка и формальных па- раметров при вызове функций, как при наличии прототипа, так и при его отсутствии: 1. Модификаторы языка для определения функции должны соот- ветствовать модификаторам, используемым в объявлении функ- ции, при всех вызовах функции. 2. Функция может модифицировать значения своих формальных параметров, но это не влияет на фактические аргументы в вы- зывающей программе, за исключением аргументов типа ссылка в C++. Если ранее не был объявлен прототип функции, Turbo C++ пре- образует интегральные аргументы при вызове функции в соот- ветствии с правилами интегрального расширения, описанными в разделе "Стандартные преобразования" на стр.41 оригинала. При наличии в контексте прототипа функции Turbo C++ преобра- зует данные аргументы к объявленным типам параметров, как при операции присвоения. Если прототип функции включает в себя многоточие (...), то Turbo C++ преобразует все данные аргументы функции, как и в любом другом прототипе (использующем многоточие). Компилятор расширяет любые аргументы, заданные помимо фиксированных па- раметров, по обычным правилам для аргументов функции без прототипов. При наличии прототипа число аргументов в прототипе и функции должно совпадать (при условии, что в прототипе не задано многоточие).Типы аргументов должны являться совмести- мы в такой степени, чтобы операция присвоения выполнялась правильно. Вы всегда можете использовать явные приведения, чтобы преобразовать аргумент к типу, приемлемому для прото- типа функции. Важное замечание Если прототип функции не соответствует фактическому оп- ределению функции, Turbo C++ обнаружит это в том и том слу- чае, когда определение содержится в той же единице компиляции, что и прототип. При создании библиотеки подпрог- рамм с соответствующим файлом заголовкапрототипов незабывай- те включать этот файл при компиляции библиотеки, с тем, что- бы любые расхождения между прототипом и фактическими определениями функции были обнаружены. С++ обеспечивает при компоновке контроль типов, поэтому все различия между ожида- емыми и действительно заданными параметрами будут компонов- щиком обнаружены. Структуры Инициализация структуры описана на стр.42 оригинала. Структура - это производный тип данных, обычно предс- тавляющий собой определяемый пользователем набор именованных компонентов. Эти компоненты могут быть любого типа, как фун- даментального, так и производного (с некоторыми описываемыми - 63 - далее ограничениями), и располагаться в любой последователь- ности. Кроме того, компонент структуры может иметь тип бито- вого поля, более нигде не разрешаемого. Тип струтуры в Turbo C++ позволяет обрабатывать сложные структуры данных так же легко, как и простые переменные. В С++ тип структуры рассматривается как тип класса (с определенными различиями: доступ по умолчанию устанавливает- ся public, а умолчание для базового класса также public). Это позволяет организовывать более сложное управление компо- нентами структуры при помощи спецификаторов доступа С++: public (это умолчание), private и protected. Помимо данного опционального механизма управления доступом и упомянутых ис- ключений, далее рассматриваемые синтаксис и применение структур относятся равно к структурам С и С++. Объявление структур выполняется при помощи ключевого


Страницы : 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
Форумы политика, лучшие анекдоты
знакомства.