Citat:
cisco89: Pozdrav ljudi
Pocetnik sam u C-u, i treba mi pomoc. Tek smo sada krenuli sa funkcijama, tj modularnom programiranju, i mene zbunjuje par stvari.
1 - Kada se pravi funkcija, kada treba da bude int, kada char, kada void itd...
2 - int Display_Menu (int x, int y) kada se pise ovo u zagradama, cemu to sluzi, i zasto se nekad ostavljaju prazne zagrade?
3 - Na kraju funkcije ide nekad return (0), nekada return(x, y), a nekada samo return.
Jeli moze neko da mi pojasna kada se sta koristi i zasto sta sluzi...
pozzz
E ovako druze:
1. int, char, void - na pocetku su tip vrednosti koje funkcija vraca kao svoj rezultat, void kad je na pocetku tada fukcije ne vraca nista uopste se na kraju ne stavlja naredba 'return' , ako se stavi kompajeler to prijavi kao gresku, jer je definisano da funkcija ne vraca nista.
2. u tvom gornjem primeru, definisao si na pocetku da fukcija vraca neku vrednost na kraju tipa int, pa onda ide ime fukcije preko koje se poziva i jos dva argumenta x i y tipa int. Da bi neko upotrebio tu fukciju iz tvog primera, treba da pozove m = Display_Menu (a,b) - ovako je ispravno, ako bi u zagradama bio samo jedan clan, ili vise clanova od dva, sve je to prijavljeno kao greska.
3. ja koliko znam moze samo jedna vrednost da se vrati preko funkcije npr. return 0, return x.
Primer:
int saberi(int x, int y)
{
int z;
z = x + y;
return z;
//ili moze bez clana 'z' sto se obicno radi, samo ovako: return x+y;
}
main() {
int a,b,c; //da napomenem da nema veze sto se tice clanova, ovde u glavnoj fukciji mogao si definisati : int x,y,z; , oni clanovi su u fukciji, tako da se ne //smatraju kao isti...
printf("Unesi dva broja: ");
scanf("%d%d" ,a,b);
z = saberi(x,y);
}
//------------------------------------------
//jos jedan primer, citav program preko fukcija
int citaj() {
int x;
printf("Unesi broj: ");
scanf("%d", x);
return x;
} //u ovoj fukciji je definisano da samo vraca vrednost tipa int, funkciji ne treba nijedna vrednost da bi citala broj, to smo definisali u funkciji, samo treba da //vrati neki broj. Citanje neke vrednosti moze da se uradi i na drugi nacin, preko pokazivaca.
void pisi_1(int x) {
printf("Vrednost broja je: %d \n");
}
//cak si mogao i definisati ovakvu funkciju da govori koji je broj, samo pored argumenta unes i neki znak koji je to broj, primer ispod
void pisi_2(int x, char c)
{
printf("\n %c = %d \n", c,x );
} // ova funkcija ne vraca nikakvu vrednost, nego stampa vrednosti na ekran.
int saberi(int x, int y)
{
return x+y;
}
main() {
int a,b,c;
a = citaj();
b = citaj();
c = saberi(a,b);
pisi_1(c);
pisi_2(c, 'C');
}
//u zagrada su argumenti sa kojima funkcija barata, i vraca odgovarajuci rezultat, ili mozda ne vraca nista, sve zavisi za sta tebi treba..
Nadam se da ti je malo jasnije.