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

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

Δημοσ.
  Στις 13/5/2014 στις 2:19 ΜΜ, imitheos είπε

Για κανονικό κώδικα όντως 0 benefit. Για παραδείγματα, tutorials, κτλ υποτίθεται έχει καλύτερο readability. Δείχνεις στον αναγνώστη ότι μιλάς για τον NUL χαρακτήρα και όχι για αριθμητικό 0 ή οτιδήποτε άλλο και έτσι (ίσως) τον βοηθάς να το καταλάβει πιο εύκολα.

 

Μπορώ να συμφωνήσω μ' αυτό αλλά μόνο για beginner level.

 

Επίσης, imo είναι πιο εύκολο να μπερδέψεις το '0' με το '\0' απ' ότι το '0' με το 0.

 

  Στις 13/5/2014 στις 3:13 ΜΜ, Kercyn είπε

Γιατί ρε παιδιά σε κάθε thread πρέπει να υπάρχει shitstorm;

 

Όταν ανοίγει κανείς το στόμα του, βγαίνει ο,τι έχει μέσα στο κεφάλι του.

  Στις 13/5/2014 στις 2:57 ΜΜ, migf1 είπε

Αλλιώς να υποθέσουμε πως εσένα κώδικα που θα τον έγραφες σε 2 μήνες με 0, με '\0' θα σε πάρει 6 μήνες.

 

Αν είστε διατεθειμένοι επίσης να υποθέσετε ότι ο κώδικας που γράφω αποτελείται μόνο από επαναλήψεις του '\0' και πως θα τα έγραφα πληκτρολογώντας τα ένα ένα, και επίσης δεν καταλαβαίνετε τη διαφορά ανάμεσα σε 300% αύξηση και 300% σκέτο, τότε ναι. Για την ακρίβεια θα πάρει πάνω από 6 8 μήνες γιατί είναι πιο εύκολο να κρατάω πατημένο το 0 παρά να γράφω ολόκληρη ακολουθία.

 

Τέσπα τι έλεγες για στείρα δημιουργία εντυπώσεων;

 

Και για να κλείσει εδώ το θέμα, όπως έγραψα ρητά αυτή είναι η προσωπική μου άποψη. Για μένα το 0 σκέτο είναι και πιο readable και πιο γρήγορο. Αν για σας δεν είναι, be my guest και #define NULL_CHAR '\0'.

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

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

Δημοφιλείς Ημέρες

Δημοσ.
  Στις 13/5/2014 στις 4:02 ΜΜ, παπι είπε

Εγω ξαναλεω. Το '\0' ειναι λαθος, το σωστοειναι '\000'. Εχω παθει πραμα με αυτο το πραμα

Τι πράμα έχεις πάθει;

 

 

  Εμφάνιση κρυμμένου περιεχομένου

 

Δημοσ.
  Στις 13/5/2014 στις 4:25 ΜΜ, migf1 είπε

Έλεγα πως επιχειρείς να δημιουργήσεις στείρες εντυπώσεις, με βαρύγδουπες ατάκες που είναι συνειδητά ανοιχτές σε οποιαδήποτε ερμηνεία και κυρίως σε οποιαδήποτε παρερμηνεία, εστιάζοντας και μεγεθύνοντας συνειδητά το δέντρο με την ελπίδα πως θα κρύψεις το δάσος.

 

Oh the irony.

 

Λοιπόν το μόνο που θεωρώ άξιο να πω είναι ότι θα πρέπει να έχεις πραγματικά μεγάλο πρόβλημα για να πεις "συνειδητά" και "με την ελπίδα", καθώς ο μόνος αρμόδιος να αποφανθεί αν κάτι το κάνω συνειδητά ή ελπίζοντας οτιδήποτε είμαι εγώ ο ίδιος. Πάρε λοιπόν σε παρακαλώ το πρόβλημά σου και πήγαινέ το αλλού.

 

Αυτό που λέω (πάνω στο tangent που εσύ με τον starlight ξεκινήσατε) είναι ότι από τους 3 τρόπους να κάνεις initialize με nulls θεωρώ το 0 τον καλύτερο, το "" κοντινό δεύτερο και το '\0' μακράν το χειρότερο. Δε θα ζητήσω την άδειά σου για να πω τη γνώμη μου όπως και συ δεν τη ζήτησες για να μας βγάλεις νωρίτερα offtopic, οπότε τον πούλο αρμ.

  • Like 1
Δημοσ.

Λοιπόν καταρχήν ευχαριστώ για το ενδιαφέρον σας , πήρα  ικανοποιητηκές απαντήσεις-παρατηρήσεις-εξηγήσεις , όσον αφορα την #include <string> για τη c++ την έχω δει , απλά ήθελα να δω τι γίνεται με τους pointers σε char[ ] .
btw papi δεν θυμάμαι ακριβώς το error που πετούσε , το κοιτάω όταν παω στο pc μου κ αναφέρω αν θες.

Δημοσ.
  Στις 13/5/2014 στις 4:35 ΜΜ, defacer είπε

...

από τους 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 για να εισηγηθείτε την αλλαγή του, και να περιμένετε να δείτε μετά αν θα το εγκρίνουν ή όχι.

 

 

  Εμφάνιση κρυμμένου περιεχομένου

 

Δημοσ.
  Στις 13/5/2014 στις 5:07 ΜΜ, ALLisCHAOS είπε

Λοιπόν καταρχήν ευχαριστώ για το ενδιαφέρον σας , πήρα  ικανοποιητηκές απαντήσεις-παρατηρήσεις-εξηγήσεις , όσον αφορα την #include <string> για τη c++ την έχω δει , απλά ήθελα να δω τι γίνεται με τους pointers σε char[ ] .

btw papi δεν θυμάμαι ακριβώς το error που πετούσε , το κοιτάω όταν παω στο pc μου κ αναφέρω αν θες.

Δεν χρειαζεται να τα θυμασαι, απλα να τα διαβαζεις. Το ερορ ειναι πανω κατω αυτο που εγραψα. Δεν μπορεις να εκχωρεις εναν pointer σε ενα char.

πχ αυτο

char c = "hello";

Θα δουλεψει;

Δημοσ.

Τελικά ρε συ παπι, τι πρόβλημα είχες με το '\0'; δεν μας είπες (και δεν πάει κιόλας και το μυαλό μου).

Δημοσ.
  Στις 13/5/2014 στις 4:25 ΜΜ, migf1 είπε

Τι πράμα έχεις πάθει;

 

 

  Εμφάνιση κρυμμένου περιεχομένου

 

https://ideone.com/wl5Rf8

 

Καντο να βγαλει

->Begin
>Ela
>stis
>12
->End
Δημοσ.

Δεν σε πιάνω ρε συ!

 

Αφενός σε μένα μια χαρά δουλεύει (χωρίς 12) σε 3 διαφορετικούς compilers που μόλις δοκίμασα, κι αφετέρου τι σχέση έχει με τη κουβέντα περί initialization σε {'\0'} vs "" vs {0} ?

Δημοσ.
  Στις 13/5/2014 στις 5:45 ΜΜ, παπι είπε

Καντο να  printaρει το 12 ρε ελεος.

Ρε συ, αυτό που δείχνεις εδώ δεν έχει να κάνει με initialization κενού c-string. Εσύ δείχνεις μια συνάρτηση που στο όνομά της λες πως θα ψάχνει μονάχα για 2 NUL chars, αλλά στην υλοποίησή της δεν τα μετράς τα NUL. Προφανώς άμα βρει non-NUL μετά τo dnsa θα στα τυπώσει όλα μέχρι να βρει NUL και φτου από την αρχή ή μέχρι να κρασάρει.

 

Που κολλάει αυτό με τα zero initializations των char arrays και ειδικά με το ότι το '\0' είναι λάθος όπως λες?

Δημοσ.
  Στις 13/5/2014 στις 5:31 ΜΜ, παπι είπε

 

https://ideone.com/wl5Rf8

 

Καντο να βγαλει

->Begin
>Ela
>stis
>12
->End

 

Σωστός!!!

Κρίμα να μην ξέρεις Αγγλικά... Θα είχες διαπρέψει στο SO! :P

  Στις 13/5/2014 στις 5:50 ΜΜ, migf1 είπε

Που κολλάει αυτό με τα zero initializations των char arrays και ειδικά με το ότι το '\0' είναι λάθος όπως λες?

 

Απλά λέει - υποθέτω - ότι το '\000' είναι ακόμα καλύτερη "συνήθεια" από το '\0'.

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

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

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

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

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

Σύνδεση

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

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