Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Ограничение в броя аргументи на функция
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=8262
Страница 1 от 1

Автор:  marcuka68 [ Сря Ное 03, 2010 3:12 pm ]
Заглавие:  Ограничение в броя аргументи на функция

Здравейте, трябва да нагаждам чужд сорс код, написан на си (компилаторът е Image craft). функцията беше с доста променливи от тип статик и четеше данни от единствения подаден параметър. Сега се налага да викам същата функция, но параметърът е друг. Като викам двете функции една след друга, нещата се омазват, щото статик променливите си пазят нужната на другата функция стойност.

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

Автор:  zaphod [ Чет Ное 04, 2010 8:49 am ]
Заглавие: 

по-добре направи една структура, инстанцирай я два пъти (за всяка функция) и подавай указател към нея като аргумент.

Автор:  marcuka68 [ Чет Ное 04, 2010 12:14 pm ]
Заглавие: 

Благодаря за съвета!

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

Прикачени файлове:
Source.txt [209 Байта]
131 пъти

Автор:  marcuka68 [ Чет Ное 04, 2010 12:16 pm ]
Заглавие: 

Не знам мога ли да си преправя мнението, ама сега гледам, че в сорса винаги се вика само f1(), няма f2() :)

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/