AVR-GCC - prototyp funkcji

Aug 19, 2005 3 Replies

Dlaczego w AVR-GCC nie mo¿na w prototypie funkcji podaæ, ¿e typem z jak± wywo³ywana jest funkcja ma byæ liczba unsigned int ?



void Funkcja (unsigned int);



Da siê co¶ takiego:



void Funkcja (int);



ale je¶li chcê np. wywo³aæ funkcjê z liczb± 40000, to nie mie¶ci siê w zakresie liczb >int<. Co z tym zrobiæ? (mam pomys³ np. ze zmienn± globaln± unsigned i wywo³ywaæ funkcjê bez parametru jako void, a w ¶rodku odczytywaæ t± zmienn± globaln±... Ale ma³o eleganckie to rozwi±zanie)



Pzdr. Krzysztof.



Tak, mój b³±d. W funkcji ¼le podawa³em typ.

Spytam przy okazji: dlaczego nie stawia siê ¶rednika na koñcu funkcji i to te¿ dzia³a tak samo jak ze ¶rednikiem?

int main(void) { funkcja(40000); }

Pzdr. K.

U¿ytkownik "Krzysztof" <krzysztof.gedroycWYTNIJ snipped-for-privacy@wp.pl napisa³ w wiadomo¶ci news:de7gul$7oo$ snipped-for-privacy@nemesis.news.tpi.pl...

Uzywasz kompilatora pracujacego zgodnie ze standardem ANSI C. Wydaje mi sie, ze powinienes poczytac o nim. Rzeczywiscie nie stawia sie srednika na koncu definicji funkcji. Srednik stawia sie natomiast na koncu deklakacji funkcji. Wszystko wynika ze wspomnianych norm zgodnie z ktorymi pracuje chyba wiekszosc dostepnych kompilatorow tego jezyka. Moze zdazyc sie przypadek, w ktorym mimo nie zachowania zgodnosci ze standardem funkcja bedzie pracowac poprawnie ale nie polecam takiego pisania programu bo w szczegolnych przypadkach moze doprowadzic to do nieprzewidywalnych wypadkow. Pozdrawiam

Jacek

40000U

Pozdrawiam Piotr Wyderski

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required