Δημοσιεύτηκε: 29 Μάιος 2011, 17:39
Σύμφωνα με το manual της scanf θα πρέπει να παιζει και το
Εννοείς για τον κώδικα που είχα ποστάρει στην αρχή έτσι? :/ Φυσικά, δεν είναι το ίδιο. Προσψπικά όταν θέλω να κάνω σύγκριση με χαρακτήρες όπως 'y', 'Y' κτλ. χρησιμοποιώ char. Αν πάλι θέλω να τσεκάρω NULL η κάποιον άλλο αριθμό χρησιμοποιώ int. Τώρα, χωρίς να είμαι απόλυτα σίγουρος το αποτέλεσμα μπορεί να είναι το ίδιο αλλα απο θέμα κώδικα η σύγκριση είναι διαφορετική. Για παράδειγμα μπορεί να σου παίζει έτσι αλλα αν έχεις ορίσει char και πας να
θα χτυπήσει όπως είναι λογικό.
Επίσης υποθέτω πως αν χρησιμοποιήσεις int απλά το μόνο που αλλάζει είναι να δεσμεύσει άλλο αριθμό bytes απο την μνήμη. Αυτό εξαρτάται και απο το σύστημα(32 'η 64 bit αν θυμάμαι καλά απο ένα πρόγραμμα που είχε κάνει o @simos). Οπότε σε 32 bit οι ακέραιοι θα πρέπει να είναι 4 byte(νομίζω
). Nevermind, αυτό βρίσκεται εύκολα με μια ανζήτηση στο google. Το point μου είναι οτι απλά αλλάζουν τα bytes που δεσμεύεις. Αυτή είναι η άποψη μου χωρίς να είμαι απόλυτα σίγουρος...
- Κώδικας: Επιλογή όλων
scanf(" %d", &x); //όπου x integer


έγραψε:Ερώτηση: Αν χρησιμοποιήσω
Κώδικας: Επιλογή όλων
int c, var, var2;
ή
Κώδικας: Επιλογή όλων
char c, var, var2;
Το αποτέλεσμα είναι το ίδιο. Ποιο είναι το σωστό; Ή είναι τα ίδια;
Εννοείς για τον κώδικα που είχα ποστάρει στην αρχή έτσι? :/ Φυσικά, δεν είναι το ίδιο. Προσψπικά όταν θέλω να κάνω σύγκριση με χαρακτήρες όπως 'y', 'Y' κτλ. χρησιμοποιώ char. Αν πάλι θέλω να τσεκάρω NULL η κάποιον άλλο αριθμό χρησιμοποιώ int. Τώρα, χωρίς να είμαι απόλυτα σίγουρος το αποτέλεσμα μπορεί να είναι το ίδιο αλλα απο θέμα κώδικα η σύγκριση είναι διαφορετική. Για παράδειγμα μπορεί να σου παίζει έτσι αλλα αν έχεις ορίσει char και πας να
- Κώδικας: Επιλογή όλων
x++;
θα χτυπήσει όπως είναι λογικό.
Επίσης υποθέτω πως αν χρησιμοποιήσεις int απλά το μόνο που αλλάζει είναι να δεσμεύσει άλλο αριθμό bytes απο την μνήμη. Αυτό εξαρτάται και απο το σύστημα(32 'η 64 bit αν θυμάμαι καλά απο ένα πρόγραμμα που είχε κάνει o @simos). Οπότε σε 32 bit οι ακέραιοι θα πρέπει να είναι 4 byte(νομίζω
