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

Complex declarations in C.


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

Δημοσ.

Καλησπερα καλη χρονια σε ολους! Βασικα έχω μια απορια μπορει να ειναι και ασήμαντη :

void (*x (int , void(*y)(int)))(int) ;

Υπάρχει ένας κανονας που λέει οτι πρέπει παντα να ξεκινάμε την αποκρυπτογραφηση τέτοιων εκφράσεων απο μέσα προς τα έξω. Αρχικα ξεκινησα απο τον identifier y μετα ειδα ομως οτι νοημα δεν βγαινει αφου στα αριστερα υπηρχε ενα κομμα και ο int. Οποτε πηγα απο τον x και τελικα οκ. Αυτο με μπερδεψε λιγο συμφωνα με τον κανονα δεν θα επρεπε να ξεκιναμε παντα απο τον y? εκτος και αν δεν εχω καταλαβει καλα το νοημα της προτασης :

 

Always read declarators from inside out  Pg468 King C programming a modern approach 2nd edition.

Δημοσ.

 

Θελω να καταλάβω πως βγαινει απο μονος μου. Βασικα το εκανα στο χαρτι και ειδα την λυση μετα και το βρήκα σωστα αλλα οπως περιγράφω πιο πανω δηλαδη ξεκινησα απο τον y ειδα πως ειναι σε λιστα παραμετρων και μετα πηγα στον x. Αυτο ομως δεν θεωρειται οτι ξεκινησα from inside out εκτος και αν δεν ισχυει για λιστες παραμετρων οπως εδω και ουσιαστικα ο μεσα ειναι ο x. Απλα κολλησα τωρα. Να ρωτησω κάτι αλλο τα παρακατω ειναι οκ?

 

Άν έχουμε δηλωσει μια μεταβλητη x να ειναι const τοτε οι ακολουθες προτασεις ειναι :

 

(a) Αν ο x ειναι τύπου int μπορει να χρησιμοποιηθει σαν ετικέτα σε μια switch -> ΛΑΘΟΣ 

 

( b ) Ο compiler θα ελεγξει αν δεν υπάρχει εκχωρηση για τον x (Compiler will check that no assignment is made to x) -> ΣΩΣΤΟ

 

© Η x ειναι αντικειμενο με ιδιους κανονες εμβελειας οπως οι μεταβλητές. ( x is subject to the same scope rules as variables) -> ΣΩΣΤΟ

 

(d) x can be any type -> ΣΩΣΤΟ

 

ΥΓ Κουραστικό να μην υπάρχουν ολες οι λύσεις στις ασκήσεις - ερωτήσεις =S 

Δημοσ.

Το cdecl πάντως δίνει syntax error στη δήλωση του αρχικού ποστ. Για το 2ο ποστ, δεν νομίζω πως χρειάζεται λυσάρι, αφού και τα 4 μπορείς να τα δοκιμάσεις απευθείας σε κώδικα για να δεις τι κάνουν.

Δημοσ.

Οντως δινει συντακτικό αλλα έτσι το πηρα απο το βιβλίο. 

 

x ειναι μια συνάρτηση με 2 ορίσματα έναν ακεραιο και έναν δείκτη σε συνάρτηση η οποία με την σειρά της παιρνει ορισμα έναν ακέραιο και επιστρέφει void. Η x επιστρέφει έναν δείκτη σε συνάρτηση που δέχεται int και επιστρέφει void. 

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα
  • Δημιουργία νέου...