Δημοσιεύτηκε: 05 Ιουν 2010, 15:56
από idomeneas
Ntelispak έγραψε:Σε παλιότερα standard της C η main δεν είχε data type. Μάλλον αυτό που διαβάζεις είναι παλιά πηγή. Πλέον η main ορίζεται σαν int και το πρόγραμμα σου επιστρέφει τιμή 0 (return 0) αν ολοκληρωθεί επιτυχώς, ή μη μεδενική σε άλλη περίπτωση. Η void main έχει διατηρηθεί για λόγους backward compatibility.
Έτσι κι αλλιώς αν προσπαθήσει κάποιος να ορίσει τη main() ως void και κάνει compile με ενεργοποιημένα τα -Wall ή -pedantic και -ansi τότε αν έχει τον gcc θα προσέξει ένα warning που αναφέρεται ότι δεν είναι int main(). Επίσης M.Jackson αν προσπαθήσεις να κάνεις το ίδιο compile με g++ θα δεις ότι αυτό θα γίνει σφάλμα. Το return 0 επιστρέφει το NULL στο σύστημα. Αλλιώς (π.χ. μετά από ένα Segmentation fault) επιστρέφει μη μηδενική τιμή για τη διαδικασία του προγράμματος που πήγε να τρέξει.