defacer Δημοσ. 13 Μαΐου 2014 Δημοσ. 13 Μαΐου 2014 Για κανονικό κώδικα όντως 0 benefit. Για παραδείγματα, tutorials, κτλ υποτίθεται έχει καλύτερο readability. Δείχνεις στον αναγνώστη ότι μιλάς για τον NUL χαρακτήρα και όχι για αριθμητικό 0 ή οτιδήποτε άλλο και έτσι (ίσως) τον βοηθάς να το καταλάβει πιο εύκολα. Μπορώ να συμφωνήσω μ' αυτό αλλά μόνο για beginner level. Επίσης, imo είναι πιο εύκολο να μπερδέψεις το '0' με το '\0' απ' ότι το '0' με το 0. Γιατί ρε παιδιά σε κάθε thread πρέπει να υπάρχει shitstorm; Όταν ανοίγει κανείς το στόμα του, βγαίνει ο,τι έχει μέσα στο κεφάλι του. Αλλιώς να υποθέσουμε πως εσένα κώδικα που θα τον έγραφες σε 2 μήνες με 0, με '\0' θα σε πάρει 6 μήνες. Αν είστε διατεθειμένοι επίσης να υποθέσετε ότι ο κώδικας που γράφω αποτελείται μόνο από επαναλήψεις του '\0' και πως θα τα έγραφα πληκτρολογώντας τα ένα ένα, και επίσης δεν καταλαβαίνετε τη διαφορά ανάμεσα σε 300% αύξηση και 300% σκέτο, τότε ναι. Για την ακρίβεια θα πάρει πάνω από 6 8 μήνες γιατί είναι πιο εύκολο να κρατάω πατημένο το 0 παρά να γράφω ολόκληρη ακολουθία. Τέσπα τι έλεγες για στείρα δημιουργία εντυπώσεων; Και για να κλείσει εδώ το θέμα, όπως έγραψα ρητά αυτή είναι η προσωπική μου άποψη. Για μένα το 0 σκέτο είναι και πιο readable και πιο γρήγορο. Αν για σας δεν είναι, be my guest και #define NULL_CHAR '\0'.
παπι Δημοσ. 13 Μαΐου 2014 Δημοσ. 13 Μαΐου 2014 Εγω ξαναλεω. Το '\0' ειναι λαθος, το σωστοειναι '\000'. Εχω παθει πραμα με αυτο το πραμα 1
migf1 Δημοσ. 13 Μαΐου 2014 Δημοσ. 13 Μαΐου 2014 Εγω ξαναλεω. Το '\0' ειναι λαθος, το σωστοειναι '\000'. Εχω παθει πραμα με αυτο το πραμα Τι πράμα έχεις πάθει; ... Αν είστε διατεθειμένοι επίσης να υποθέσετε ότι ο κώδικας που γράφω αποτελείται μόνο από επαναλήψεις του '\0' και πως θα τα έγραφα πληκτρολογώντας τα ένα ένα, και επίσης δεν καταλαβαίνετε τη διαφορά ανάμεσα σε 300% αύξηση και 300% σκέτο, τότε ναι. Για την ακρίβεια θα πάρει πάνω από 6 8 μήνες γιατί είναι πιο εύκολο να κρατάω πατημένο το 0 παρά να γράφω ολόκληρη ακολουθία. Τέσπα τι έλεγες για στείρα δημιουργία εντυπώσεων; ... Έλεγα πως επιχειρείς να δημιουργήσεις στείρες εντυπώσεις, με βαρύγδουπες ατάκες που είναι συνειδητά ανοιχτές σε οποιαδήποτε ερμηνεία και κυρίως σε οποιαδήποτε παρερμηνεία, εστιάζοντας και μεγεθύνοντας συνειδητά το δέντρο με την ελπίδα πως θα κρύψεις το δάσος.
defacer Δημοσ. 13 Μαΐου 2014 Δημοσ. 13 Μαΐου 2014 Έλεγα πως επιχειρείς να δημιουργήσεις στείρες εντυπώσεις, με βαρύγδουπες ατάκες που είναι συνειδητά ανοιχτές σε οποιαδήποτε ερμηνεία και κυρίως σε οποιαδήποτε παρερμηνεία, εστιάζοντας και μεγεθύνοντας συνειδητά το δέντρο με την ελπίδα πως θα κρύψεις το δάσος. Oh the irony. Λοιπόν το μόνο που θεωρώ άξιο να πω είναι ότι θα πρέπει να έχεις πραγματικά μεγάλο πρόβλημα για να πεις "συνειδητά" και "με την ελπίδα", καθώς ο μόνος αρμόδιος να αποφανθεί αν κάτι το κάνω συνειδητά ή ελπίζοντας οτιδήποτε είμαι εγώ ο ίδιος. Πάρε λοιπόν σε παρακαλώ το πρόβλημά σου και πήγαινέ το αλλού. Αυτό που λέω (πάνω στο tangent που εσύ με τον starlight ξεκινήσατε) είναι ότι από τους 3 τρόπους να κάνεις initialize με nulls θεωρώ το 0 τον καλύτερο, το "" κοντινό δεύτερο και το '\0' μακράν το χειρότερο. Δε θα ζητήσω την άδειά σου για να πω τη γνώμη μου όπως και συ δεν τη ζήτησες για να μας βγάλεις νωρίτερα offtopic, οπότε τον πούλο αρμ. 1
ALLisCHAOS Δημοσ. 13 Μαΐου 2014 Μέλος Δημοσ. 13 Μαΐου 2014 Λοιπόν καταρχήν ευχαριστώ για το ενδιαφέρον σας , πήρα ικανοποιητηκές απαντήσεις-παρατηρήσεις-εξηγήσεις , όσον αφορα την #include <string> για τη c++ την έχω δει , απλά ήθελα να δω τι γίνεται με τους pointers σε char[ ] .btw papi δεν θυμάμαι ακριβώς το error που πετούσε , το κοιτάω όταν παω στο pc μου κ αναφέρω αν θες.
migf1 Δημοσ. 13 Μαΐου 2014 Δημοσ. 13 Μαΐου 2014 ... από τους 3 τρόπους να κάνεις initialize με nulls θεωρώ το 0 τον καλύτερο, το "" κοντινό δεύτερο και το '\0' μακράν το χειρότερο... Με γεια σου και χαρά σου. Τα πεθαμένα μάτια, τα 300% αύξηση των keystrokes και τα 0 benefits ποιον ακριβώς σκοπό εξυπηρετούσαν στο πόστ σου; Μήπως για να μας πείσεις για το ορθό της μη προτίμησής σου; Αν ναι, τότε τυγχάνει να έχουμε άλλη άποψη (ότι βοηθάνε στο readability) και επίσης τυγχάνει να είμαστε ελεύθεροι να την εκφράσουμε. Σε χαλάει; Αν ναι, κρίμα. Επί της ουσίας, για όσους νέους διαβάζουν το νήμα. Και οι 3 τρόποι είναι ισοδύναμοι και χρησιμοποιούνται εξίσου (το char s[...]=""; δεν υποστηριζόταν από κάποιους παλιούς compilers αλλά πλέον that's ancient history). Το ποιον από τους 3 θα χρησιμοποιήσει κανείς σε προσωπικό επίπεδο είναι περισσότερο θέμα γούστου παρά οτιδήποτε άλλο (και σίγουρα ο καθοριστικός παράγοντας δεν είναι τα 2 έξτρα keystrokes... αν το πρόβλημά σας είναι για το αν θα πληκτρολογείτε 1 ή 3 χαρακτήρες στο όποιο initialization, τότε μάλλον ΔΕΝ κάνετε για προγραμματιστές). Εκεί που συνήθως δεν θα έχετε λόγο, θα είναι αν εμπλακείτε είτε επαγγελματικά είτε από χόμπι με κάποιο σοβαρό πρότζεκτ, όπου συνήθως διέπονται από συγκεκριμένα coding styles. Εκεί θα το κάνετε όπως το θέλουν εκείνοι... άντε το πολύ-πολύ να περιμένετε μέχρι το επόμενο meeting για να εισηγηθείτε την αλλαγή του, και να περιμένετε να δείτε μετά αν θα το εγκρίνουν ή όχι. Oh the irony. Λοιπόν το μόνο που θεωρώ άξιο να πω είναι ότι θα πρέπει να έχεις πραγματικά μεγάλο πρόβλημα για να πεις "συνειδητά" και "με την ελπίδα", καθώς ο μόνος αρμόδιος να αποφανθεί αν κάτι το κάνω συνειδητά ή ελπίζοντας οτιδήποτε είμαι εγώ ο ίδιος. Πάρε λοιπόν σε παρακαλώ το πρόβλημά σου και πήγαινέ το αλλού. Αυτό που λέω (πάνω στο tangent που εσύ με τον starlight ξεκινήσατε) είναι ότι από τους 3 τρόπους να κάνεις initialize με nulls θεωρώ το 0 τον καλύτερο, το "" κοντινό δεύτερο και το '\0' μακράν το χειρότερο. Δε θα ζητήσω την άδειά σου για να πω τη γνώμη μου όπως και συ δεν τη ζήτησες για να μας βγάλεις νωρίτερα offtopic, οπότε τον πούλο αρμ. Το μόνο που είπες εσύ είναι πώς: όταν βλέπεις '\0' πονάνε τα μάτια σου και πως πρόκειται για 300% αύξηση keystrokes με 0 benefit. Εποικοδομητικό, σοβαρό και πλήρως ενημερωτικό ποστ δηλαδή και κυρίως καθόλου προκλητικό κι αμφιλεγόμενο. Τα υπόλοιπα τα είπες μετά από "ζόρισμα" και κατά την προσφιλή σου τακτική κατέληξες για μια ακόμα φορά σε βαρύγδουπη νηπιακή ατάκα: "τον πούλο αρμ". Την προηγούμενη φορά με είχες προτρέψει να: "talk to the palm". Καλά το πας. Συνέχισε έτσι. Ανεβάζεις το επίπεδο του φορουμ. Btw, δεν θα σου ζητήσω την άδεια για να απαντάω όπου κι όταν κρίνω σκόπιμο. Οπότε...
παπι Δημοσ. 13 Μαΐου 2014 Δημοσ. 13 Μαΐου 2014 Λοιπόν καταρχήν ευχαριστώ για το ενδιαφέρον σας , πήρα ικανοποιητηκές απαντήσεις-παρατηρήσεις-εξηγήσεις , όσον αφορα την #include <string> για τη c++ την έχω δει , απλά ήθελα να δω τι γίνεται με τους pointers σε char[ ] . btw papi δεν θυμάμαι ακριβώς το error που πετούσε , το κοιτάω όταν παω στο pc μου κ αναφέρω αν θες. Δεν χρειαζεται να τα θυμασαι, απλα να τα διαβαζεις. Το ερορ ειναι πανω κατω αυτο που εγραψα. Δεν μπορεις να εκχωρεις εναν pointer σε ενα char. πχ αυτο char c = "hello"; Θα δουλεψει;
migf1 Δημοσ. 13 Μαΐου 2014 Δημοσ. 13 Μαΐου 2014 Τελικά ρε συ παπι, τι πρόβλημα είχες με το '\0'; δεν μας είπες (και δεν πάει κιόλας και το μυαλό μου).
παπι Δημοσ. 13 Μαΐου 2014 Δημοσ. 13 Μαΐου 2014 Τι πράμα έχεις πάθει; Έλεγα πως επιχειρείς να δημιουργήσεις στείρες εντυπώσεις, με βαρύγδουπες ατάκες που είναι συνειδητά ανοιχτές σε οποιαδήποτε ερμηνεία και κυρίως σε οποιαδήποτε παρερμηνεία, εστιάζοντας και μεγεθύνοντας συνειδητά το δέντρο με την ελπίδα πως θα κρύψεις το δάσος. https://ideone.com/wl5Rf8 Καντο να βγαλει ->Begin >Ela >stis >12 ->End
migf1 Δημοσ. 13 Μαΐου 2014 Δημοσ. 13 Μαΐου 2014 Δεν σε πιάνω ρε συ! Αφενός σε μένα μια χαρά δουλεύει (χωρίς 12) σε 3 διαφορετικούς compilers που μόλις δοκίμασα, κι αφετέρου τι σχέση έχει με τη κουβέντα περί initialization σε {'\0'} vs "" vs {0} ?
migf1 Δημοσ. 13 Μαΐου 2014 Δημοσ. 13 Μαΐου 2014 Καντο να printaρει το 12 ρε ελεος. Ρε συ, αυτό που δείχνεις εδώ δεν έχει να κάνει με initialization κενού c-string. Εσύ δείχνεις μια συνάρτηση που στο όνομά της λες πως θα ψάχνει μονάχα για 2 NUL chars, αλλά στην υλοποίησή της δεν τα μετράς τα NUL. Προφανώς άμα βρει non-NUL μετά τo dnsa θα στα τυπώσει όλα μέχρι να βρει NUL και φτου από την αρχή ή μέχρι να κρασάρει. Που κολλάει αυτό με τα zero initializations των char arrays και ειδικά με το ότι το '\0' είναι λάθος όπως λες?
geomagas Δημοσ. 13 Μαΐου 2014 Δημοσ. 13 Μαΐου 2014 https://ideone.com/wl5Rf8 Καντο να βγαλει ->Begin >Ela >stis >12 ->End Σωστός!!! Κρίμα να μην ξέρεις Αγγλικά... Θα είχες διαπρέψει στο SO! Που κολλάει αυτό με τα zero initializations των char arrays και ειδικά με το ότι το '\0' είναι λάθος όπως λες? Απλά λέει - υποθέτω - ότι το '\000' είναι ακόμα καλύτερη "συνήθεια" από το '\0'.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα