Void

WinstonB

Početnik
Poruka
2
Jedno pitanje iz C-a (vidim da nema zasebna tema o njemu).
Znam da se void koristi kod definisanja funkcija koje nemaju povratnu vrednost, medjutim ako funckiju definisemo kao void, a ona sadrzi povratnu vrednost, kako ce prevodioc tu funkciju da posmatra. Da li ce automatski da je definise kao int i zanemari void?
 

Peruzzi

Domaćin
Poruka
4.068
trebalo bi da baci gresku kod kompajliranja return koji vraca bilo sta sto nije void.

druga stvar je ako je potvratna vrednost void* - tada void ne znaci "nista" nego "svasta" i koristis kad vracas pokazivac na alociranu memoriju u kojoj se nalazi nesto. na tebi je da vodis racuna da povratnu vrednost kastujes u odgovarajuci tip.

izuzetak je main, gde kompajleri void main() pretvaraju u int main() ... return 0; ali cini mi se da po ansi standardu to nisu u obavezi. dodatno - main vraca int jer taj int hvata os i tretira ga kao kod greske. 0 znaci da nema greske i da se program lepo zavrsio. sve sem toga bice tretirano kao greska.
 

WinstonB

Početnik
Poruka
2
Probao sam na nekim krajnje jednostavnim primerima i kaze nema greske a programcic sljaka isto onako kao kad se definise int funkcija...mada verujem da na necem kompleksnijem ne bi moglo. Nego jos jedno pitajne ako moze. Sta predstavlja ovakav zapis heksadecimalnog broja 0x8000, 0x1234, 0x9B6C? mozda jei glupo pitanje ali ne kontam bas svrhu takvog zapisa
 
Poruka
13.237
bolje ti da lepo formulišeš kveri na google-u odmah ćeš da nađeš rešenje za malte-ne svaki problem u vezi rogramiranja, na engleskom ofc,
ovako kad' pitaš na forumu uvek čekaš na odgovor...istražuj...
 

Top