Доброго времени суток, сообщество!В ближайшее время планируется перенос "приложения", написанного на QBasic'e, на *nix платформу. Приложение в кавычках, потому что это не полноценное приложение, а скорее набор функций для расчета термодинамических свойств веществ, причем в нем очень активно используются глобальные переменные (т.е. фактически даже не полноценные функции :).
Использование глобальных переменных связано с большим количеством расчитываемых параметров, приблизительно 7-мь характиристик для одного вещества (а веществ как минимум 3-и). Другими словами без них бы функция принимала уйму переменных.
Т.к. я планирую реализовать это в качестве отдельной "красивой" библиотеки (на Си) возникает вопрос - а как разобраться с такой кучей параметров ?!
Безусловно, у меня есть идеи, но хотелось бы услышать вашу точку зрения на этот вопрос.
Не мучай голову, реализуй так:/**
* Basic termo dynamic object
*/
class TermoDynamicObject
{ public:
...// а тут набор твоих методов, работающих со свойствами
protected:
SvoistvoType svoistvo1, svoistvo2, ... ;
};или в си так:
struct termo_dynamic_object
{
SvoistvoType svoistvo1, svoistvo2, ... ;
};/* и тут список твоих методов */
ret_type method1(termo_dynamic_object *tmo, ...)
{
...
}
>struct termo_dynamic_object
>{
> SvoistvoType svoistvo1, svoistvo2, ... ;
>};
>
>/* и тут список твоих методов */
>
>ret_type method1(termo_dynamic_object *tmo, ...)
>{
> ...
>}приблизительно я так и собирался :) с variadic функциями и структурами.
Спасибо!
>Доброго времени суток, сообщество!
>
>В ближайшее время планируется перенос "приложения", написанного на QBasic'e, на *nix платформу.
>Приложение в кавычках, потому что это не полноценное приложение, а скорее
>набор функций для расчета термодинамических свойств веществ, причем в нем очень
>активно используются глобальные переменные (т.е. фактически даже не полноценные функции :).
>
>Т.к. я планирую реализовать это в качестве отдельной "красивой" библиотеки (на
>Си) возникает вопрос - а как разобраться с такой кучей параметров
>?!Это скорее будет не перенос, а полное переписывание. А что бы разобраться прийдется понять всю математику, по другому написаный таким способом код не поймешь. Разбираться в чужих прогах написаных с применением глобальных переменных удовольствие ниже среднего и занимает много времени.
Если прога большая и уже работает, то намного проще будет найти бейсик под линукс, а если нужно будет "расширить " возможности то написать прогу которая будет забускайть старую прогу, передавать ей данные и читай ее вывод.
>Это скорее будет не перенос, а полное переписывание. А что бы разобраться
>прийдется понять всю математику, по другому написаный таким способом код не
>поймешь.безусловно.
> Разбираться в чужих прогах написаных с применением глобальных переменных удовольствие
>ниже среднего и занимает много времени.
>Если прога большая и уже работает, то намного проще будет найти бейсик
>под линукс, а если нужно будет "расширить " возможности то написать
>прогу которая будет забускайть старую прогу, передавать ей данные и
>читай ее вывод.к сожалению данный вариант не примлем. Мне дальше ее сопровождать и расширять :) Лучше уж я один раз вникну во всю эту байду, чем каждый раз буду проклинать себя, что не принял правильного решения несколько месяцев/лет назад :)
Но тем не менее спасибо, за вариант решения.
>Доброго времени суток, сообщество!
>
>В ближайшее время планируется перенос "приложения", написанного на QBasic'e, на *nix платформу.
>Приложение в кавычках, потому что это не полноценное приложение, а скорее
>набор функций для расчета термодинамических свойств веществ, причем в нем очень
>активно используются глобальные переменные (т.е. фактически даже не полноценные функции :).
>
>
>Использование глобальных переменных связано с большим количеством расчитываемых параметров, приблизительно 7-мь характиристик
>для одного вещества (а веществ как минимум 3-и). Другими словами без
>них бы функция принимала уйму переменных.
>
>Т.к. я планирую реализовать это в качестве отдельной "красивой" библиотеки (на
>Си) возникает вопрос - а как разобраться с такой кучей параметров
>?!
>
>Безусловно, у меня есть идеи, но хотелось бы услышать вашу точку зрения
>на этот вопрос.Есть такая штука, правда я ее не пробовал... Может быть поможет
http://linux.maruhn.com/sec/qb2c.htmlУспехов
--- sas
>Есть такая штука, правда я ее не пробовал... Может быть поможет
>http://linux.maruhn.com/sec/qb2c.html
>
>Успехов
>--- sasспасибо.
Однако, применять не буду :) А то корявость программы повысится в 2-а раза ;-) и больше в ней точно никто не разберется.
ps: тема закрыта - решение struct's & variadic функции.