Επισκέπτης Δημοσ. 30 Ιανουαρίου 2007 Δημοσ. 30 Ιανουαρίου 2007 Mporei kapoios na mou eksigisei ti akribos kanoun ta parakatw declarations kai ena paradeigma gia to pws mporw na ta xrisimopoihsw? (Apo to biblio The C programming language Ritchie & kernighan) 1) char (*(*x())[])() 2) char (*(*x[3])())[5] To cdecl mou vgazei ta ekshs: cdecl> explain char (*(*x())[])() declare x as function returning pointer to array of pointer to function returning char cdecl> explain char (*(*x[3])())[5] declare x as array 3 of pointer to function returning pointer to array 5 of char Alla eksakolou8w na min polukatalabainw pws mporoun na xrhsimopoih8oun sthn praksi.. Euxaristw
alkisg Δημοσ. 30 Ιανουαρίου 2007 Δημοσ. 30 Ιανουαρίου 2007 declare x as function returning pointer to array of pointer to function returning char Alla eksakolou8w na min polukatalabainw pws mporoun na xrhsimopoih8oun sthn praksi.. Πλάκα κάνεις, έτσι; !!! Αυτά είναι παραδείγματα για να μην έχεις πρόβλημα κατανόησης δύσκολης σύνταξης, όχι για να τα χρησιμοποιήσεις... ΟΚ, ας προσπαθήσω να δώσω ένα σενάριο που να μπορεί να χρησιμοποιηθεί το πρώτο: (εδώ γελάμε) Θες να διαβάσεις ένα χαρακτήρα από κάποια τερματικά. Κάθε τερματικό έχει διαφορετικό interface, και άρα χρειάζεται ξεχωριστή συνάρτηση. Επομένως χρειάζεσαι μια σειρά από συναρτήσεις, μία για κάθε τερματικό, που να σου επιστρέφουν ένα χαρακτήρα. Ως εδώ έχεις το array of pointer to function returning char. Όμως κάθε χρήστης που έχει συνδεθεί με το μηχάνημα έχει δικαιώματα πρόσβασης σε διαφορετικά τερματικά. Επομένως χρειάζεσαι μια συνάρτηση η οποία θα ελέγχει τα credentials του χρήστη, θα κοιτάει σε ποια τερματικά έχει πρόσβαση, και θα επιστρέφει το σχετικό πινακάκι. Επομένως αυτή η συνάρτηση επιστρέφει array με συναρτήσεις διαβάσματος χαρακτήρα για κάθε τερματικό που ο χρήστης έχει δικαιώματα πρόσβασης, κι αυτό χρειάζεται την πρώτη δήλωση που σου έδωσε το cdecl. Ε, άμα φτάσεις σε τέτοιο πρόβλημα, πιστεύω θα αρκεστείς σε if/switch κτλ.
dop Δημοσ. 30 Ιανουαρίου 2007 Δημοσ. 30 Ιανουαρίου 2007 Είναι ασκήσεις απλώς για να σου δείξουν πόσο περίπλοκες μπορούν να γίνουν οι δηλώσεις. Και πιθανώς να σε αποτρέψουν να χρησιμοποιείς τέτοιες κατασκευές.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.