Wpis z mikrobloga

@Podlaski_warmianin jakbyś chciał np. zmieniać kilka wartości poprzez funkcję to masz dwie drogi, albo wskaźniki, albo struktury. Mało kto tworzy strukturę tylko dla jednokrotnego użycia. Inaczej jak zmodyfikujesz przekazane argumenty funkcji, to wszystkie zmiany przepadną. Użycie wskaźników bardzo zależy od kontekstu i wskaźniki na wskaźniki na wskaźniki to mało kto robi. Za pomocą wskaźników można również robić pewne ciekawe operacje na pamięci, ale to jest nieoczywisty dodatek
  • Odpowiedz
konto usunięte via Wykop Mobilny (Android)
  • 1
@Podlaski_warmianin: Załóżmy że wskaźnik ma 8 bajtów. Obiekt na który wskazuje może mieć np 1024 bajty. Nie opłaca się za każdym razem kopiować obiektu, szybciej jest podać jego adres. Może być też konieczność podania adresu, aby coś w tym obiekcie zmienić. Zmiana czegoś w kopii obiektu nie przyniesie tu oczekiwanego efekty.
  • Odpowiedz
@Podlaski_warmianin:
Klasyczny przykład to np. graf albo lista dwukierunkowa. Wyobraź sobie taki diagram (takie jakie ludzie wstawiają na prezentacje w powerpoint), gdzie jedno kółko jest połączone z kilkoma innymi strzałkami. Wskaźnik to taka strzałka z jednego kółka na drugie.
Poza tym tak jak wyżej wspomniano. Tworzysz sobie obiekt raz, a potem tylko przechowujesz "strzałkę" lub "pilot" do niego.
  • Odpowiedz
@Bizancjum: Mirek klepacz kodu w Mozilli raczej to ogarnia ale pewnie ma też nad sobą PMa i prikaz, że kod ma być maksymalnie czytelny, podzielony na niezależne funkcje, pisany jednocześnie przez wiele osób więc koncepcja wskaźników nie nadaje się do takiej pracy że niby grupa ale każdy grzebie swój kawałek kodu. Nie mam doświadczenia z koderskimi kołchozami ale podejrzewam, że tak właśnie jest, że jak przyjdzie świeżak i chce się popisać
  • Odpowiedz
Brakuje mi tylko opcji wstawek w assemblerze jak w C/C++, bo czasem przy wstawianiu własnego kodu do pamięci gier trzeba się manualnie bawić rejestrami


@twuj_wuj: na nightly jest dostępne makro asm!
  • Odpowiedz
@132qwe: chodzi po prostu o to, że w C nie ma przekazywania zmiennych przez referencje. Nie możesz wysłać zmiennej do funkcji żeby ta ją zmodyfikowała, bo przekazujesz kopię i co najwyżej ta kopia może być zmodyfikowana. Ale za to możesz zamiast zmiennej przekazać jej adres i wtedy funkcja będzie mogła operować na tej zmiennej.

Ponadto jeśli masz wielką zmienną strukturalną to przekazując do funkcji adres tej zmiennej oszczędzasz trochę pamięci, bo
  • Odpowiedz
kod ma być maksymalnie czytelny, podzielony na niezależne funkcje, pisany jednocześnie przez wiele osób więc koncepcja wskaźników nie nadaje się do takiej pracy że niby grupa ale każdy grzebie swój kawałek kodu


@hu-nows: wskaźniki nie mają nic do organizacji kodu czy też pracy grupowej. Można nimi zaciemnić kod, ale pod warunkiem że jest się kiepskim programistą. Wskaźniki to podstawowy mechanizm w języku C, bez którego trudno nawet napisać hello world.
  • Odpowiedz