Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

...

Γενικά τρεις ήταν οι πιό "σοβαρές" (τονίζω τα εισαγωγικά) επιλογές:

β) αυτό των Perry & Miller (αν και κάπου διάβασα ότι δεν έχει ασκήσεις για εξάσκηση -κάτι κακό για την περίπτωσή μου)

Για μένα αυτό το συγκεκριμένο είναι κάτω του μετρίου. Και μόνο που χρησιμοποιεί παντού main() αντί για int main(void) αρκεί :P... πέρα όμως από αυτό, γενικώς είναι πολύ μέτριο βιβλίο.

 

γ) αυτό του Kochan (3η/4η έκδοση)

Η 3η έκδοση καλύπτει C89 και C99... η 4η έκδοση δεν έχει βγει ακόμα (είναι προγραμματισμένη για τον Σεπτέμβρη σύμφωνα με το Amazon). Είναι καλό βιβλίο, αλλά όχι καλύτερο από του King.

 

Ένα ακόμα καλό βιβλίο είναι το C Primer Plus 6th Edition, του Prata που θεωρητικά καλύπτει και C11, αλλά στην πράξη απλώς αναφέρεται στα features της, δεν αναλύει τίποτα. Επίσης δεν είναι καλύτερο βιβλίο από του King (btw, το προτιμώ από του Kochan, αλλά όπως έχεις καταλάβει προτιμώ του King από όλα τα υπόλοιπα).

 

...

"Κάποιες από αυτές, όπως για παράδειγμα η "remove implicit int" (που έθιξα στο προηγούμενο ποστ) η "integer promotion rules", η "deprecate ungetc at the beginning of a binary file" ενδέχεται να σου δημιουργήσουν πρόβλημα σε σύγχρονους compilers (αν και σε όλους τους δημοφιλείς compilers μπορείς να ορίζεις σε ποιο στάνταρ της γλώσσας θέλεις να κάνεις τόσο το preprocessing όσο και το compilation)."

 

Αν μιλάς για την C99, γιατί ένας νέος compiler (π.χ. gcc/llvm) να δημιουργεί πρόβλημα (λογικά θα έπρεπε να καλύπτουν μέχρι και την C11); Εκτός αν κατάλαβα κάτι λάθος.

Οι compilers έχουν ένα flag για να ορίζεις με ποιο πρότυπο της C θέλεις να κάνεις compile τα πηγαία αρχεία σου, π.χ. στον gcc είναι το -std=c89 (ή C99 ή C11 κι έχει κι άλλα, δικά του... π.χ. -std=gnu11, κλπ).

 

Όταν λοιπόν έχεις -std=c99 και στο πηγαίο σου γράφεις: main() θα σου βγάλει warning κατά το compilation. Btw να χρησιμοποιείς -Wall -Wextra για να έχεις πάντα όλα τα warning ανοιχτά, θα σε βοηθήσει να εντοπίζεις διάφορα πράγματα και errors ).

  • Απαντ. 34
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

Για μένα αυτό το συγκεκριμένο είναι κάτω του μετρίου. Και μόνο που χρησιμοποιεί παντού main() αντί για int main(void) αρκεί :P... πέρα όμως από αυτό, γενικώς είναι πολύ μέτριο βιβλίο.

 

A γειά σου! Αυτό το είδα (μόλις) και εγώ!

 

 

Η 3η έκδοση καλύπτει C89 και C99... η 4η έκδοση δεν έχει βγει ακόμα (είναι προγραμματισμένη για τον Σεπτέμβρη σύμφωνα με το Amazon). Είναι καλό βιβλίο, αλλά όχι καλύτερο από του King.

 

Ένα ακόμα καλό βιβλίο είναι το C Primer Plus 6th Edition, του Prata που θεωρητικά καλύπτει και C11, αλλά στην πράξη απλώς αναφέρεται στα features της, δεν αναλύει τίποτα. Επίσης δεν είναι καλύτερο βιβλίο από του King (btw, το προτιμώ από του Kochan, αλλά όπως έχεις καταλάβει προτιμώ του King από όλα τα υπόλοιπα).

 

Εν τέλει, κατέληξα στου King -είδα (πολύ πολύ γρήγορα του Kochan). ;)

 

Οι compilers έχουν ένα flag για να ορίζεις με ποιο πρότυπο της C θέλεις να κάνεις compile τα πηγαία αρχεία σου, π.χ. στον gcc είναι το -std=c89 (ή C99 ή C11 κι έχει κι άλλα, δικά του... π.χ. -std=gnu11, κλπ).

 

Όταν λοιπόν έχεις -std=c99 και στο πηγαίο σου γράφεις: main() θα σου βγάλει warning κατά το compilation. Btw να χρησιμοποιείς -Wall -Wextra για να έχεις πάντα όλα τα warning ανοιχτά, θα σε βοηθήσει να εντοπίζεις διάφορα πράγματα και errors ).

 

ΟΚ... να' σαι καλά!

 

ΥΓ. Kάτι ακόμη (από καθαρή περιέργεια): αν ΔΕΝ βάλεις κάποιο flag, αναφορικώς με την έκδοση (std), ποιό είναι το default π.χ. για τον τελευταίο gcc; Δεν θα είναι η C11; 

Δημοσ.

ΥΓ. Kάτι ακόμη (από καθαρή περιέργεια): αν ΔΕΝ βάλεις κάποιο flag, αναφορικώς με την έκδοση (std), ποιό είναι το default π.χ. για τον τελευταίο gcc; Δεν θα είναι η C11;

Δεν το θυμάμαι (εγώ βάζω πάντα το -std= που με ενδιαφέρει).

Δημοσ.

ΥΓ. Kάτι ακόμη (από καθαρή περιέργεια): αν ΔΕΝ βάλεις κάποιο flag, αναφορικώς με την έκδοση (std), ποιό είναι το default π.χ. για τον τελευταίο gcc; Δεν θα είναι η C11;

Ποτέ δεν είναι το πρότυπο. Από τη μάνα του πάντα υποστηρίζει μια διάλεκτο του GNU. Η μανίσια επιλογή για την ώρα είναι gnu90 δηλαδή c89/90 + επεκτάσεις δικές του που δεν υπάρχουν στο πρότυπο. Εδώ και πολλά χρόνια είναι στα σχέδια να αλλαχτεί το default σε gnu99 αλλά δεν έχει γίνει ακόμη και παραμένει το gnu90.

Δημοσ.

Ποτέ δεν είναι το πρότυπο. Από τη μάνα του πάντα υποστηρίζει μια διάλεκτο του GNU. Η μανίσια επιλογή για την ώρα είναι gnu90 δηλαδή c89/90 + επεκτάσεις δικές του που δεν υπάρχουν στο πρότυπο. Εδώ και πολλά χρόνια είναι στα σχέδια να αλλαχτεί το default σε gnu99 αλλά δεν έχει γίνει ακόμη και παραμένει το gnu90.

Ευχαριστώ πολύ για την διευκρίνιση!

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...