Dyskusja:C/Funkcje

Najnowszy komentarz napisał(a) 15 lat temu Adam majewski w wątku Kategorie funkcji

proponował bym zmianę typ identyfikator (typ1 argument1, typ2 argument2, typn argumentn) na nazwa_funkcji(typ1 .......itd . Wg mnie jest to powszechniej stosowane. I przede wszystkim prostsze w zrozumieniu i zapamiętaniu

Sugerujesz usunięcie typu przed nazwą funkcji? Tego typu zamiana na pewno nie przejdzie. Co do zamiany słowa identyfikator na nazwa_funkcji - nie jest to żadna istotna zmiana. --Kj 10:02, 26 lis 2006 (CET)Odpowiedz

chodzi mi o zmianę identyfikator na "nazwa_funkcji"...to jest drobna zmiana...ale od szczegółu do ogółu wg mnie tak łatwiej zbudować....o typ zapomniałem wcześniej dopisać ;) Wikipedysta:Noisy 11:44, 26 lis 2006 (CET)Odpowiedz


Hmm... z tego co wiem, to C99 nie jest najnowszym standardem. Jest nim ISO/IEC 9899:TC2 by WG14/N1124 May6, 2005 którego opis znajduje się tutaj

Kategorie funkcji

edytuj

Witam. Znalazłem ciekawą ( ?) informację :

"CATEGORIES of functions in C.

There are some C functions that require both a header and a library link: exp(), sin(): #include<math.h> and -lm

There are some C functions that require JUST a header: malloc(), fprintf(): #include<stdlib> or stdio.h

There are some C functions that require neither printf() (actually, printf technically requires the #include, but if I do not exploit the return value, I do not have to include it to prototype the function) "

"The difference is for historical reasons. Since there are lots of math functions, and they are never used in a lot of programs, back in the old days when computers were much slower than they are now some vendors thought it would be a good idea to separate out these functions into a separate math library (even though they're in the Standard C Library), so that programs that don't use them could be compiled more quickly."

? --Adam majewski 20:49, 21 lut 2009 (CET)Odpowiedz

Pierwsza kategoria to funkcje, które po prostu nie są obecne w tym samym pliku, co biblioteka standardowa języka C. Przy kompilacji programu w którym zostały użyte musimy dołączyć odpowiednie opcje konsolidatora. Druga kategoria jest oczywista - kompilator (np. gcc) sam dołącza bibliotekę C do generowanego programu. Trzecia kategoria IMHO to wymysł autora tego tekstu (właśnie - możesz podać, skąd go zaczerpnąłeś?). Jeśli istnieje wymóg dołączania plików nagłówkowych to się to robi, a nie cieszy się, że "działa i bez tego". Odnośnie końcowego paragrafu - jest jeszcze jeden powód - czasami na niektórych platformach (np. telefony komórkowe i inne miniaturowe urządzenia) biblioteki funkcji działających na typach zmiennoprzecinkowych są bardzo obszerne, a rzadko się z nich korzysta. To też jest dodatkowy argument za oddzieleniem części biblioteki C odpowiedzialnej za matematykę. --Kj 13:40, 22 lut 2009 (CET)Odpowiedz

Dzięki za odpowiedź. Te informacje są z dyskusji : comp.lang.c na temat #include vs. -library. Zainteresowało mnie to bo napisałem program , który działał ( gcc przez Dev-C++ ) pod windows. Kiedy chciałem go skompilować pod Linuksem to otrzymałem komunikaty o błędach. Po niewielkich zmianach działa w tej samej wersji na : windows, Linux i Mac. Można powiedzieć że jest wieloplatformowy, co jest moim celem. Opis dyskusji i program : pl.comp.os.linux.programowanie a temat [c, gcc] : atan2, floor fabs

oraz C/Przenośność_programów#Odmiany_bibliotek Dlatego wydaje mi się że te informacje są ( przynajmniej dla mnie, nie eksperta) istotne. Nie znalazłem ich na stronie o funkcjach. Co o tym sądzisz ?--Adam majewski 21:35, 23 lut 2009 (CET)Odpowiedz

Informacja o dołączeniu parametru "-lm" jest tutaj: zaawansowane operacje matematyczne. Materiał w podręczniku jest ułożony raczej jako przewodnik po kolejnych zagadnieniach programowania, a szczegóły opisujące takie problemy, jak "-lm" znajdują się w miejscach, bezpośrednio związanych z danym zagadnieniem. Nie wydaje mi się ponadto, żeby biblioteka matematyczna była czymś bardzo istotnym dla początkującego programisty, który na początku powinien nauczyć się podstawowej terminologii i "sztuki programowania" lub też znaleźć pewne analogie do innych języków programowania (o ile jakieś inne języki znał wcześniej). --Kj 00:25, 24 lut 2009 (CET)Odpowiedz
OK. to może w indeksie odnośnik do lm bo znaleźć to szukając jest bardzo trudno. --Adam majewski 07:47, 24 lut 2009 (CET)Odpowiedz
Powrót do strony „C/Funkcje”.