Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 24.05.2006, 17:45   [включить плавающее окно]   #1
Jabberwocky
Мужской Умудрённый
Автор темы
 
Аватар для Jabberwocky
 
Регистрация: 14.12.2003
Адрес: Москва
Помогите разобраться с Cи

Никогда прежде на этом языке не писал. Теперь вот пришлось, ибо нужная библиотека есть только на C.
Откопал TurboC 3.0, поставил. Тестовая прога, идущая с библиотекой скомпилировалась, но при попытке создать exe-файл выдает ошибку, что нет файла cos.obj. Вопрос, где брать и куда его совать?
__________________
Никогда не существовало и не будет существовать никаких «прикладных наук», есть лишь приложения наук (весьма полезные!) © Л. Пастер
Jabberwocky вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 25.05.2006, 18:28   [включить плавающее окно]   #2
Phodopus
Мужской Продвинутый
 
Регистрация: 05.10.2005
Адрес: Санкт-Петербург
Ну так ты поищи его у себя! Есть он или нету?
Phodopus вне форума  
Ответить с цитированием
Непрочитано 26.05.2006, 12:35   [включить плавающее окно]   #3
Jabberwocky
Мужской Умудрённый
Автор темы
 
Аватар для Jabberwocky
 
Регистрация: 14.12.2003
Адрес: Москва
Phodopus
нету

Всё! С эим разобрался, нужные файлы откопал.
Теперь вопрос по коду.
Код:
#include "f2c.h"
int main(void)
{
    ...
    extern int qs60r_c(float *, float *, float *, R_fp, float *, int *);
    extern float f_c();
    static float a1[3], a2[3], eps, int__;

    a1[0] = 0.f;
    a1[1] = 0.f;
    a1[2] = 0.f;
    a2[0] = 1.f;
    a2[1] = 2.f;
    a2[2] = 3.f;
    eps = .001f;

    qs60r_c(&&#173int__, a1, a2, (R_fp)f_c, &eps, &ierr);
    ...
    ...
} 

float f_c(float *x)
{...}
Вопрос №1. Что значит 'f' в числах, например a1[0] = 0.f?
Вопрос №2. Совершено непонятно использование R_fp и конфигурация (R_fp)f_c
Порывшись в f2c.h нашел такие строки:
Код:
...
typedef float real;
...
#ifdef __cplusplus
...
typedef real (*R_fp)(...);
...
#else
...
typedef real (*R_fp)();
...
#endif
Но они мне ничего толком не обяснили.
__________________
Никогда не существовало и не будет существовать никаких «прикладных наук», есть лишь приложения наук (весьма полезные!) © Л. Пастер

Последний раз редактировалось Jabberwocky; 26.05.2006 в 15:52.
Jabberwocky вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 26.05.2006, 17:30   [включить плавающее окно]   #4
Phodopus
Мужской Продвинутый
 
Регистрация: 05.10.2005
Адрес: Санкт-Петербург
(R_fp)f_c это, судя по-всему, явное приведение переменной f_c к типу R_fp.
ну а ".f" - приведение числа к вещественному типу. Тока вот нА оно тут надо, это еще вопрос..
Phodopus вне форума  
Ответить с цитированием
Непрочитано 26.05.2006, 18:13   [включить плавающее окно]   #5
Jabberwocky
Мужской Умудрённый
Автор темы
 
Аватар для Jabberwocky
 
Регистрация: 14.12.2003
Адрес: Москва
Не понятно.
про typedef
Типичный пример из книжки
typedef float real;
Теперь словом real обзываем тип float. Это понятно, но почему
typedef real (*R_fp)(...); ???
Я так понимаю, что (*R_fp)(...) это указатель на функцию с произвольным числом параметров. При чем там функция!!!
__________________
Никогда не существовало и не будет существовать никаких «прикладных наук», есть лишь приложения наук (весьма полезные!) © Л. Пастер
Jabberwocky вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 26.05.2006, 19:27   [включить плавающее окно]   #6
Andron_
Мужской Заслуженный
 
Аватар для Andron_
 
Регистрация: 01.02.2004
Адрес: Новосибирск
Цитата (Jabberwocky) »
a1[0] = 0.f;
f - признак числа типа float.
Т.е. оно записывается не как double, а одинарной точности.
Цитата (Jabberwocky) »
Я так понимаю, что (*R_fp)(...) это указатель на функцию с произвольным числом параметров. При чем там функция!!!
ну передается указательна функцию... Та ф-ция, куда он передается наверное ее вызывает, но подразумевается, что может передаваться указатель на пользовательскую ф-цию, с нужной реализацией.
__________________
Дилетант широкого профиля. По совместительству преподаватель С/С++.
Andron_ вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 30.05.2006, 12:19   [включить плавающее окно]   #7
Jabberwocky
Мужской Умудрённый
Автор темы
 
Аватар для Jabberwocky
 
Регистрация: 14.12.2003
Адрес: Москва
Поехали дальше.
В сопроводительной документации есть такая надпись
"Кроме того, при получении исполнимого файла (EXE - файла) необходимо обеспечить подсоединение библиотеки с именем lf2c.lib, заказав ее в командной строке перед другими библиотеками транслятора."
Как сие обеспечить в среде TurboC 3.0?
__________________
Никогда не существовало и не будет существовать никаких «прикладных наук», есть лишь приложения наук (весьма полезные!) © Л. Пастер
Jabberwocky вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 30.05.2006, 19:01   [включить плавающее окно]   #8
Andron_
Мужской Заслуженный
 
Аватар для Andron_
 
Регистрация: 01.02.2004
Адрес: Новосибирск
Цитата (Jabberwocky) »
Как сие обеспечить в среде TurboC 3.0?
сие читать в мануале к Турбо Си раздел линковки...
__________________
Дилетант широкого профиля. По совместительству преподаватель С/С++.
Andron_ вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 31.05.2006, 11:59   [включить плавающее окно]   #9
Jabberwocky
Мужской Умудрённый
Автор темы
 
Аватар для Jabberwocky
 
Регистрация: 14.12.2003
Адрес: Москва
Andron_
Объяснил, блин
__________________
Никогда не существовало и не будет существовать никаких «прикладных наук», есть лишь приложения наук (весьма полезные!) © Л. Пастер
Jabberwocky вне форума  
Конфигурация ПК
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 17:45. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey