mikandrzej napisał(a):
No tak, ale nawet komentarze do listingu świadczą o tym jakby ta funkcja miała zwracać jakąś liczbę. Jest to napisane jako całość, a tekst pod listingiem mówi też zupełnie co innego. Nie mam zamiaru się czepiać, ale czytam powtórnie całość od początku i w tym momencie, kiedy już się troszkę oswoiłem z C/C++, nie wiem czy całe życie żyłem w błędzie, czy ten kod jest po prostu wyciągnięty z nosa
No dobra, tymi dość mało grzecznymi uwagami zmusił mnie kolega do bardzo dokładnej analizy kodu, o który sam zapytałeś:
mikandrzej napisał(a):
A ja nie rozumiem, dlaczego na stronie 159 na gorze w listingu jest:
a 〓 fun(&a)
Skoro
void fun(char *c)
Jak funkcja ma cos zwracac, skoro jest "void"??
i tu REWELACYJNIE wyczuł sytuację jak zwykle kolega Malutki_27
Malutki_27 napisał(a):
Przecie może zwrócić wartość przez wskaźnik
jestem pełen podziwu dla sokolego oka. Bo ja będąc pod naporem wrażeń i pracy z aktualizacją strony zbyt szybko przeanalizowałem zapytanie przyznając się do błędu.
przytoczę tu cały kod z książki:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
wprawdzie operacja
Kod:
a=fun(&a);
nie spowoduje przypisania żadnej wartości do zmiennej 'a' za pomocą rezultatu ponieważ w definicji funkcji jest brak rezultatu 'void' , i nawet nie da się to skompilować bo skoro funkcja nie zwraca wartości za pomocą rezultatu to nie można użyć takiej funkcji przyrównania.
TO JEDNAK po wykonaniu jej w taki sposób:
Kod:
fun(&a);
uzyskamy efekt taki sam jakby było to napisane tak: a=fun(&a);
dlatego, że wewnątrz funkcji działamy na wskaźniku do zmiennej a.
A moje niedopatrzenie wyniknęło stąd, że wcześniej pewnie pisałem podobną funkcję, która zwracała normalnie wynik i całkiem niepotrzebnie dopisałem
Kod:
a=
zatem dla praktyka a nie teoretyka, który ćwiczy to od razu w kodzie źródłowym - nie powinno stanowić najmniejszego problemu.
---------------------
przy okazji zaznaczam i przypominam, że jest to dział do ew zgłaszania błędów do erraty ale w kulturalny sposób a nie pojeżdżanie sobie z tekstami typu o "kodzie wyciągniętym z nosa"
Jak kolega napisze co najmniej długi i porządny poradnik albo książkę tego typu to proszę bardzo - można mnie mieszać z błotem - ale proszę to robić na swoim blogu czy innej stronie internetowej. Nie będę więcej tolerował takich uwag i od razu skasuję takie wypowiedzi. Jakoś inni potrafią wyrazić się albo dopytać bez stosowania takich tekstów.
Biorąc pod uwagę takie wypowiedzi nie wiem czy dobrze zrobiłem że stworzyłem taki dział. Mam jednak nadzieję, że to jednostkowy wybryk.