Отговори на тема  [ 4 мнения ] 
Ограничение в броя аргументи на функция 
Автор Съобщение
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Пет Авг 07, 2009 4:58 pm
Мнения: 273
Мнение Ограничение в броя аргументи на функция
Здравейте, трябва да нагаждам чужд сорс код, написан на си (компилаторът е Image craft). функцията беше с доста променливи от тип статик и четеше данни от единствения подаден параметър. Сега се налага да викам същата функция, но параметърът е друг. Като викам двете функции една след друга, нещата се омазват, щото статик променливите си пазят нужната на другата функция стойност.

Единственото според мен разумно решение, е да се махнат статик променливите и тези променливи да ги подавам, като параметър за всяка от двете функции. Параметрите стават доста - около 10, можете ли да ми кажете, това нещо лошо ли е и до колко :)


Сря Ное 03, 2010 3:12 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юли 24, 2005 10:28 am
Мнения: 2658
Мнение 
по-добре направи една структура, инстанцирай я два пъти (за всяка функция) и подавай указател към нея като аргумент.


Чет Ное 04, 2010 8:49 am
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Пет Авг 07, 2009 4:58 pm
Мнения: 273
Мнение 
Благодаря за съвета!

На мен сутринта ми хрумна и друга идея. Функцията си остава със старите статик променливи и се добавя втори параметър към нея - флаг, който се сваля, когато фунцията завърши, след многократното си извикване. В основната функция, ще се следят тези флагове. Кодът, за сега, е нещо подобно на прикачения


Прикачени файлове:
Source.txt [209 Байта]
131 пъти
Чет Ное 04, 2010 12:14 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Пет Авг 07, 2009 4:58 pm
Мнения: 273
Мнение 
Не знам мога ли да си преправя мнението, ама сега гледам, че в сорса винаги се вика само f1(), няма f2() :)


Чет Ное 04, 2010 12:16 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 4 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни