Турбо С: руководство пользователя. Часть 2

Турбо С: руководство пользователя. Часть 2 - Стр. 24

Печать PDF
Индекс материала
Турбо С: руководство пользователя. Часть 2
Стр. 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
Все страницы
     чальная  установка параметров будет сохранена,  выберите Compile/          
     Compile to OBJ.  Турбо Си скомпилирует CSUM.C в выбранных режимах          
     в объектный модуль CSUM.OBJ.                                               
                                                                                
          2. Если  вы предпочтете компилировать CSUM.C командной стро-          

                         - 193,194 -
                                                                                
                                                                                
     кой по стандарту DOS вместо использования меню Турбо Си, то после          
     приглашения операционной системы, введите                                  
                                                                                
          tcc -ml -O -c -u- -r- csum                                            
                                                                                
          Замечание: Турбо Пролог компилируется только в большой моде-          
     ли памяти,  поэтому для обеспечения связи между Турбо Си и  Турбо          
     Прологом вы должны использовать при компиляции опцию -ml.                  
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
               Исходный файл Турбо Пролога : PROSUM.PRO                         
     -----------------------------------------------------------------          
                                                                                
     global predicates                                                          
       sum(integer,integer,integer) - (i,i,o) language c                        
                           /* описание аргументов функции суммирования          
                           - sum определено как (i,i,o) и специфициру-          
                           ет,  что третий аргумент возвращает  значе-          
                           ние, а первые два принимают). */                     
       goal  sum(7,6,X),write("Sum=",X).                                        
                                                                                
                                                                                
                                                                                
               Компиляция PROSUM.PRO в PROSUM.OBJ                               
     -----------------------------------------------------------------          
                                                                                
          После редактирования  и сохранения PROSUM.PRO вам необходимо          
     откомпилировать его в обьектный  (.OBJ)  файл,  который  позволит          
     скомпоновать его с обьектным модулем Турбо Си. Чтобы сделать это,          
     выберите опцию Compile из главного меню Турбо Пролога,  а затем -          
     OBJ File . Когда Турбо Пролог завершит компиляцию исходного файла          
     в обьектный файл,  вы можете выполнить компоновку и запуск вашего          

                         - 195,196 -
                                                                                
                                                                                
     примера.                                                                   
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
               Компоновка CSUM.OBJ и PROSUM.OBJ                                 
     -----------------------------------------------------------------          
                                                                                
          Для компоновки модулей Турбо Пролога с модулями Турбо Си, вы          
     можете использовать или интегрированную среду Турбо Си,  или ком-          
     поновщик TLINK (автономный компоновщик,  включенный в  ваш  пакет          
     Турбо Си).  За командой tlink следуют аргументы командной строки:          
     главные модули Турбо Пролога, набор других модулей, выходные фай-          
     лы и библиотеки. Кроме специально оговоренных случаев, они должны          
     следовать в следующем порядке:                                             
                                                                                
                                                                                
     Инициализация Турбо Пролога:                                               
     ---------------------------                                                
                                                                                
          # INT.OBJ (модуль инициализации Турбо Пролога)                        
                                                                                
     Главный модуль Турбо Пролога:                                              

     ----------------------------                                               
                                                                                
          # главный модуль Турбо Пролога, который содержит раздел gоal          
                                                                                

                         - 197,198 -
                                                                                
     Набор модулей:                                                             
     -------------                                                              
                                                                                
          (эти модули не обязательно выстраивать в какой-то определен-          
     ный порядок)                                                               
                                                                                
          # ассемблеровские .OBJ модули                                         
          # Турбо Си        .OBJ модули                                         
          # Турбо Пролог    .OBJ модули                                         
                                                                                
     Модуль таблицы идентификаторов:                                            
     ------------------------------                                             
                                                                                
          # Имя основной таблицы идентификаторов Пролога  (это  обяза-          
     тельный параметр, он должен завершать список модулей)                      
                                                                                
     Имя выходного файла                                                        
     -------------------                                                        
                                                                                
          # имя выполняемого файла, который будет создан                        
                                                                                
                                                                                
                                                                                
     Библиотеки:                                                                
     ----------                                                                 
                                                                                
          # перечисляются все библиотеки,  содержащие функции, необхо-          
     димые для компонуемых модулей.  Последовательность важна: первыми          
     идут библиотеки,  определяемые пользователями,  затем PROLOG.LIB,          
     далее, если необходимо, EMU.LIB и MATHL.LIB, и наконец, CL.LIB.            
                                                                                
          В этом примере мы использовали  программу  компоновки  Turbo          
     Link  (обозначаемую как tlink) и передали ей следующие аргументы:          
                                                                                
          # Программы Турбо Пролога, INIT.OBJ и PROSUM.OBJ                      
          # Объектный модуль Турбо Си CSUM.OBJ                                  
          # Таблицу  идентификаторов  PROSUM.SYM  и  выполняемый  файл          
            TEST.EXE                                                            
          # библиотеки PROLOG.LIB, CL.LIB (для работы с плавающей точ-          
            кой используйте EMU.LIB и MATHL.LIB)                                
                                                                                
          Замечание: PROSUM.SYM является  файлом,  содержащим  таблицу          
     имен и типов переменных, имеющихся в программе PROSUM.OBJ.                 
                                                                                
          Ниже приведена командная строка для компоновки нашего перво-          

                         - 199,200 -
                                                                                
                                                                                
     го примера:                                                                
                                                                                
     tlink init prosum csum prosum.sym, test.exe,,prolog+cl                     
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
          Пример 2: Использование библиотеки математических функций             
     -----------------------------------------------------------------          
                                                                                
          Второй пример похож на первый, он демонстрирует, как записы-          
     ваются две функции на Турбо Си и как они комбинируются с програм-          
     мой на Турбо Прологе. Мы оформляем каждую из используемых функций          
     Турбо Си в виде отдельного исходного  файла;  CSUM1.C  складывает          
     два действительных числа и возвращает сумму, а FACTRL.C вычисляет          
     факториал целого числа.  Программа на Турбо  Прологе  FACTSUM.PRO          
     записывает результаты программы в два окна Пролога. Данный пример          
     использует библиотеку математических функций большой модели памя-          
     ти - MATHL.LIB.                                                            
                                                                                
                                                                                
          И с х о д н ы й  ф а й л Турбо Си: CSUM1.C                            
                                                                                
     extern void zwf(char *format, ...);                                        
     void sum_0(double parml, double parm2, double *res_p)                      
     {                                                                          
       *res_p=parm1+parm2;                                                      
       zwf("Это функция суммирования: parm1=%f, parm2=%f, result=%f",           
                         parm1,parm2,*res_p);                                   

                         - 201,202 -