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




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

     тельные библиотеки Си.  Третий пример демонстрирует распределение          
     памяти.  Последний пример описывает практическую программу работы          
     с  графикой и демонстрирует некоторые мощные возможности, которые          
     вы получите от комбинирования двух языков.                                 
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                

                         - 185,186 -
                                                                                
               Компоновка Турбо Си и Турбо Пролога: обзор                       
     -----------------------------------------------------------------          
                                                                                
          Компиляция и компоновка ваших модулей,  написанных на  Турбо          
     Си, с  модулями и программами Турбо Пролога выполняется напрямую.          
     Вам только необходимо запомнить следующие пункты:                          
                                                                                
          Компиляция ваших программных модулей:                                 
                                                                                
       # Ваши Си функции, вызываемые Турбо Прологом, должны иметь суф-          
         фикс _0 (см.  первый пример программы на Си,  CSUM.C,  в этой          
         главе) , если вы не используете в Турбо Прологе расширение as          
         "".                                                          
                                                                                
       # Ваш главный модуль,  написанный на Турбо Прологе, т.е. модуль          
         с разделом goal, заменяет ваш главный модуль на Си.                    
                                                                                
       # Главный модуль Турбо Пролога должен содержать ваши  Си  функ-          
         ции,  описанные как глобальные предикаты. (Смотри первый при-          
         мер Пролог программы PROSUM.PRO в этой главе).                         
                                                                                
       # Все программные модули должны компилироваться в большой моде-          
                                                                                
         ли памяти (которая является единственным размером памяти, ис-          
         пользуемым при компиляции Турбо Пролога).                              
                                                                                
       # Если ваша программа вызывает библиотеки Турбо  Пролога версий          
         1.1  - 2.0 ,  то вы должны компилировать модули в выключенном          
         режиме размещения переменных в регистрах (-r-).                        
                                                                                
       # Генерация подчеркивания должна быть отключена (-u-).                   
                                                                                
                                                                                
          Компоновка ваших программных модулей:                                 
                                                                                
       # INIT.OBJ  должен  быть  первым  объектным  файлом компоновки.          
         (Этот модуль инициализации Турбо Пролога находится  на  диске          
         библиотек Турбо Пролога.)                                              
                                                                                
       # Если  вам  необходимы подпрограммы из библиотек Турбо Си,  то          
         используйте CL.LIB,  а если вы используете арифметику с дейс-          
         твительными  числами  (real  arithmetic),  то еще - EMU.LIB и          
         MATHL.LIB.                                                             
                                                                                
          Командная строка компоновщика должна иметь вид:                       

                         - 187,188 -
                                                                                
                                                                                
     tlink init     Другие_файлы   , [exe_файл], [ваши_библиотеки]  prolog  [emulibmathl] cl          
                                                                                
     (она должна быть набрана в одной командной строке)                         
                                                                                
          В дополнение к предыдущим правилам вам нужно запомнить                
     следующее:                                                                 
                                                                                
       # Функции Турбо Пролога могут вызывать функции,  написанные  на          
         Турбо Си,  по аналогии со встроенными в Турбо Пролог предика-          
         тами (функциями).                                                      
                                                                                
       # Все вызовы функций из библиотеки Турбо Си должны  иметь  пре-          
         фикс - нижнее подчеркивание (_). Замечание. Все имена библио-          
         течных функций Турбо Си содержат префикс  нижнее  подчеркива-          
         ние. Поэтому,  поскольку генерация нижнего подчеркивания вык-          
         лючена,  то к вызову библиотечных функций должен явно  добав-          
         ляться символ нижнего подчеркивания.  Определяемые же пользо-          
         вателем функции не нуждаются в этом символе.                           
                                                                                
       # malloc,  calloc,  free и другие функции распределения  памяти          
                                                                                
         Турбо  Си заменяются в Турбо Прологе на alloc_gstack, _malloc          
         и _free.  Эти функции доступны в Турбо Прологе и  служат  для          
         размещения памяти внутри ваших Турбо Си функций.                       
                                                                                
          Функция alloc_gstack  распределяет память в глобальном стеке          
          и вызывается так:                                                     
                                                                                
          void *alloc_gstack(int size).                                         
                                                                                
          _malloc распределяет память в "куче" (heap) Пролога и  вызы-          





вается так: void *_malloc (int size). _free освобождает память, распределеную в "куче" Пролога, и вызывается так: _free(void *ptr, int size). Когда используется alloc_gstack, память при неудачной отра- ботке освобождается автоматически, что заставляет Турбо Про- лог производить откат через операцию размещения памяти. - 189,190 - # printf, putc и соответствующие им функции вывода на экран не работают после компоновки Турбо Си и Турбо Пролога. Тем не менее, писать символы в окна Пролога может wrch, а zwf явля- ется аналогом предиката Турбо Пролога writef. zwf - это printf с некоторыми ограничениями. zwf(FormatString, аргумент 1, аргумент 2, аргумент 3, ...) FormatString - строка формата, аналогичная используемой в printf. Посмотрите в справочном руководстве по Турбо Проло- гу, какие спецификации преобразования поддерживаются. zwf и wrch находятся в PROLOG.LIB. # Функции Си, вызываемые Турбо Прологом, не должны возвращать значений и должны быть определены как void. Шаблон на аргу- менты должен быть специфицирован в глобальных объявлениях предикатов Турбо Пролога. Так: factorial(integer,real) - (i,o) language c позволяет определить Турбо Прологу, что factorial - есть функция от двух аргументов: первый - integer (целый), второй - real (с плавающей точкой). Конструкция (i,o) указывает, что первый аргумент (integer) является входным, а второй - указатель на число с плавающей точкой, которому будет прис- воено значение факториала. Буква с в этой конструкции указы- вает Турбо Прологу, что эта функция использует соглашения вызывов Си (смотри третий пример программы в этой главе: DUBLIST.C и PLIST.PRO). Заметьте, что значение возвращается в виде указателя. Для большей информации по описанию шаблонов на аргументы смотрите обсуждение его альтернативы в примере 3. - 191,192 - Пример 1: Сложение двух целых чисел ----------------------------------------------------------------- Следующий пример комбинирует функцию Турбо Си (которая скла- дывает два целых числа) с модулем на Турбо Прологе, который поме- щает результат, вычисленный функцией Си, в текущее окно. Исходный файл Турбо Си: CSUM.C ----------------------------------------------------------------- /* подпрограмма вывода zwf работает подобно подпрограмме printf язы- ка Си. Она печатает результат в текущем окне */ extern void zwf(char *format, ...); void sum_0(int parm1,int parm2, int *res_p) { zwf("Это функция суммирования: parm1=%d, parm2=%d, parm1,parm2); *res_p=parm1+parm2; } /* конец sum_0 */ Компиляция CSUM.C в CSUM.OBJ ----------------------------------------------------------------- После редактирования и сохранения на диске файла CSUM.C, вам необходимо выбрать опции для его компиляции. Турбо Си для этого предоставляет вам два метода: 1. Выберете опции для компиляции из меню Интегрированной среды Турбо Си: Options/Compiler/Model/Large (-ml) Options/Compiler/Optimization/Jump Optimization...On (-O) Options/Compiler/Code Generation/Generate Underbars...Off (-u-) Options/Compiler/Optimization/Use Register Variables...Off (-r-) Сразу после выбора опций выберите в главном меню Турбо Си опцию Options/Store options - Опции/Сохранить опции, когда же на-


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