funkcja globalna
Ostatnio zmodyfikowano 2012-10-11 13:21
ziommus Temat założony przez niniejszego użytkownika |
funkcja globalna » 2012-10-11 12:37:01 Dzień dobry, mam zadany do napisania program i nie rozumiem dokładnie jednego z punktu wymagań do programu, który brzmi następująco:
"należy użyć podwojnej tablicy wskaznikow co najmniej raz w parametrze funkcji globalnej i co najmniej raz jako typ funkcji globalnej".
Jeżeli to ma być funkcja globalna czy to oznacza, że zarówno deklaracja funkcji jak i ciało funkcji musi się znajdować przed funkcją main ?
A jeżeli tak to w którym miejscu kodu trzeba stworzyć obiekt np. (stworzyć dynamiczną tablicę dynamicznych struktur), do której wskaźnik zostanie przypisany jako argument (parametr) podczas wywoływania tej funkcji globalnej? Czyżby trzeba było przydzielić pamięć nad tą funkcją globalną?
Jak na mój gust to spory bałagan by się zrobił, ale muszę trzymać się wymagań.
Dziękuję z góry, za odpowiedź, pozdrawiam. |
|
DejaVu |
» 2012-10-11 13:21:49 Lepiej pytaj się u źródła jak należy interpretować treść tego zadania. Nie wydaje mi się aby istniało coś takiego jak funkcja 'globalna'. Każda funkcja jest globalna jeżeli rozpatruje się ją w kontekście małych projektów, opartych o jeden plik źródłowy. Funkcję lokalną można uzyskać tylko i wyłącznie w projekcie składającym się z kilku plików, w której implementację zamieszcza się w pliku *.cpp oraz dodatkowo poprzedzi się ją słowem kluczowym static, aby mieć gwarancję, że kompilator nie uczyni jej dostępnej z poziomu innych plików (o ile będzie istniała w ogóle deklaracja w pliku *.hpp). Ponadto na etapie nauki nie rozgranicza się nigdy funkcji globalnej/lokalnej, bowiem to nie ma najmniejszego sensu i raczej trzeba mieć dużą wiedzę żeby podać przykład funkcji 'lokalnej'. Nie ma czegoś takiego jak podwójna tablica wskaźników - co najwyżej dwuwymiarowa tablica wskaźników. Innymi przypadkami mogą być jeszcze: tablica wskaźników, albo tablica wskaźników na wskaźniki, aczkolwiek, aby uniknąć niedomówień powinien wówczas zostać określony z góry typ tablicy, jaki należy zastosować w programie np. "co najmniej raz jako typ funkcji globalnej" <= a to to już w ogóle zagadka :) /edit: Dodam jeszcze: http://forum.pclab.pl/topic /654232-C-Funkcja-globalna-a-lokalna/oraz: Jedna rzecz, o jakiej trzeba w C++ ZAPOMNIEĆ (wielu uważa to za wadę C++ i po części mają oni rację) to funkcje lokalne. Każda funkcja w C++ posiada tylko i wyłącznie trzy środowiska: zmienne globalne (na plik!), zmienne lokalne wywoływanej funkcji i zmienne statyczne tej funkcji (poznasz je niedługo). C++ niestety nie jest językiem funkcjonalnym i tam funkcje mają sporo ograniczeń; m.in. właśnie to, że każda funkcja ma globalny zasięg (z nazwami to jest tak nie do końca, ale to już dłuższy temat).
|
źródło: http://www.intercon.pl/~sektor/cbx/basics/intro.htmlAczkolwiek w powyższym cytacie całkowicie bezsensownym jest pisanie o zmiennych, podczas opisywania problemu związanego z funkcjami. |
|
« 1 » |