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




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Турбо С: руководство пользователя. Часть 2
Автор ""
Размер 800673 Байт
Страница 32 из 56
СКАЧАТЬ КНИГУ ЦЕЛИКОМ

          Модификатор signed противоположен unsigned и явно указывает,          
     что величина со знаком.  Данный модификатор используется  преиму-          
     щественно для документирования и придания законченного вида прог-          
     раммам. Однако,   если вы компилируете программу,   используя  по          
     умолчанию беззнаковый тип char (вместо знакового),  то нужно  ис-          
     пользовать модификатор signed, для того чтобы определить перемен-          
     ную или функцию типа signed char.  Модификатор signed,  использо-          
     ванный сам по себе, означает signed int, также как и unsigned оз-          
     начает unsigned int.                                                       
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          Модификатор const                                                     
     -----------------------------------------------------------------          
                                                                                
          Модификатор const,  по определению стандарта ANSI, не допус-          
     кает каких бы то ни было переопределений собственных значений или          
     других косвенных изменений,  таких как увеличение или уменьшение.          
     Указатель типа const не может быть модифицирован,  в  отличии  от          
     самого объекта,   который он определяет.  Замечание:  модификатор          
     const, используемый сам по себе, эквивалентен const int. Рассмот-          
     рим следующие примеры:                                                     
                                                                                
          const float pi          = 3.1415926;                                  
          const       maxint      = 32767;                                      
          char *const str         = "Hello, world";  /* Указатель типа          
                                                              const */          
          char const  *str2       = "Hello, world";  /* Указатель на            
                                                           строку типа          
                                                              const */          
                                                                                
          Приведенные ниже утверждения недопустимы:                             
                                                                                
          pi  = 3.0;              /* Присвоение значения константе */           

                         - 261,262 -
                                                                                
                                                                                
          i   = maxint--;                  /* Уменьшение константы */           
          str = "Hi, there!";          /* Переназначение указателя */           
                                                                                
          Заметим,  однако, что вызов функции strcpy(str,"Hi, there!")          
     допустим,  поскольку  выполняет  посимвольное  копирование строки          
     символов  "Hi, there!" в область памяти, определяемую str.                 
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          Модификатор volatile                                                  
     -----------------------------------------------------------------          
                                                                                
          Модификатор volatile,   также  определенный стандартом ANSI,          
     почти полная противоположность const.  Он указывает,  что  объект          
     может быть изменен не только вами, а также и чем-нибудь вне вашей          
     программы, например, программой прерываний или портом ввода/выво-          
     да. Объявление объекта как volatile предупреждает компилятор, что          
     не нужно делать предположений относительно значения  объекта,   в          
     тот момент когда оцениваются содержащие его выражения,  т.к. зна-          
     чение может (теоретически)  измениться в любое время. Кроме того,          
     volatile запрещает также компилятору использовать вместо перемен-          
     ных регистровые переменные.                                                
                                                                                
                                                                                
          volatile int ticks;                                                   
          interrupt timer();                                                    
          {                                                                     
               ticks++;                                                         
          }                                                                     
                                                                                
          wait (int interval)                                                   

                         - 263,264 -
                                                                                
                                                                                
          {                                                                     
               ticks = 0;                                                       
               while(ticks < interval);        /* ничего не делать */           
          }                                                                     
                                                                                
          Эти программы (иммитирующие таймер, связанный с прерываниями          
     от аппаратных часов) будут реализовывать временную задержку в со-          
     ответствии со значением, указанным в аргументе interval. Заметим,          





что компилятор с высоким уровнем оптимизации может не загрузить значение ticks внутри цикла while, т.к. цикл не изменяет значения ticks. Модификаторы cdecl и pascal ----------------------------------------------------------------- Турбо Си позволяет вызывать из вашей программы программы, написанные на других языках, и наоборот. При смешивании языков вы должны умело обращаться с двумя важными объектами: идентификато- рами и передаваемыми параметрами. При компиляции программы Турбо Си, все глобальные идентифи- каторы программы, т.е. имена функций и глобальные переменные, сохраняются в объектном коде для последующей компоновки. По умол- чанию эти идентификаторы записываются в оригинальном виде, (т.е в соответствии с состоянием регистра - заглавный, строковый или и тот, и другой). Кроме того, символ подчеркивание (_) предшествует идентификатору, если вы не использовали опцию -u(Generated underbars...OFF). Аналогично, все внешние идентификаторы, объявленные вами в программе, остаются в том же самом формате. Компоновщик (по умолчанию) различает регистры клавиатуры, поэтому идентификаторы, используемые в различных исходных файлах, должны точно соответст- вовать и по орфографии, и по регистрам клавиатуры. - 265,266 - pascal ----------------------------------------------------------------- В определенных ситуациях, например, при использовании кода, написанного на других языках, описанный выше метод сохранения имен, применяемый по умолчанию, может вызвать ряд проблем. Турбо Си дает вам путь для обхода этих проблем. Вы можете объявить любой идентификатор как идентификатор типа pascal. Это означает, что идентификатор преобразуется к верхнему регистру и к нему не добавляется символ подчеркивания. (Если идентификатор яв- ляется функцией, то данное правило распространяется и на переда- ваемые параметры; см. "Модификаторы типа функций" для более де- тального понимания.) При этом используемый вами в исходном коде регистр не учитывается, т.к. на этапе компоновки применяется только верхний регистр. cdecl ----------------------------------------------------------------- Установив при компиляции опцию -p (соответствующую стандарт- ному Паскалю), вы можете сделать все глобальные идентификаторы в исходном файле типа pascal. Однако затем вы можете захотеть ука- зать, что некоторые идентификаторы чувствительны к регистру и впереди имеют знак подчеркивания, особенно, если это Си идентифи- каторы из другого файла. В этом случае вы можете сделать объявление этих идентифика- торов как cdecl, (что также будет влиять и на передачу в функцию параметров). Вы можете заметить, например, что все функции в заголовках файлов (stdio.h и др.) имеют тип cdecl. Это дает возможность про- вести компоновку с библиотечными программами, если вы используете опцию -p при компиляции. Для выяснения деталей смотрите раздел 10.1.1 K&R в этой главе, а также главу 12. - 267,268 - Модификаторы near, far и huge ----------------------------------------------------------------- Турбо Си имеет три модификатора, воздействующих на косвенный оператор (*), и, тем самым, модифицирующих указатели на данные. Речь идет о near, far и huge. Назначение этих ключевых слов более детально объясняется в главе 12, а здесь дается лишь краткий об- зор. Турбо Си позволяет использовать при компиляции одну из нес- кольких моделей памяти. Модель, которую вы используете, определя- ет (среди прочих деталей) внутренний формат указателей на данные. Если вы используете малую модель памяти (tiny, small, medium), все указатели имеют длину только 16 бит и задают смещение относи- тельно регистра сегмента данных (DS). Если вы используете большую модель (compact, large, huge), все указатели на данные имеют дли-


Страницы : 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 31 [32] 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56


adfun.ru









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

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

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

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