Temporary variables
Dimitrios Kamenopoulos
el97146 at mail.ntua.gr
Wed Jun 12 17:29:02 EEST 2002
On Wednesday 12 June 2002 14:46, George Kourtis wrote:
> Πολλοί μη έμπειροι χρήστες, για να βγάλουν ένα αποτέλεσμα χρησιμοποιούν
> ενδιάμεσες μεταβλητές όταν δεν υπάρχει λόγος.
> πχ c=a+b ; s=sin(c)
> Μία μεταβλητή πρέπει να δημιουργηθεί όταν θα χρησιμοποιηθεί πάνω από μία
> φορά
ή έστω όταν έχει καθαρό νόημα και ενδέχεται να χρησιμοποιηθεί για
> αυτό κάποια άλλη φορά (έστω και αν δεν χρησιμοποιήται στον κώδικα που
> γράφουμε τώρα.)
> Όπως είναι σαφές είναι πολύ καλύτερο να γράψουμε: a=sin(b+c)*sin(c+d) παρά
>
t1=b+c ; t2=c=d;a=sin(t1)*sin(t2).
Για ξανασκέψου το. Στην απλή περίπτωση που περιγράφεις ΟΚ, αλλά αν
a = //μέσος όρος μετρήσεων από 13 διαφορετικά αρχεία
b = (sqrt(t)+5*sin(sqrt(x/2))/tan(1/log(y))
c = //κάποιο άλλο μακρυνάρι
τότε αν προσπαθήσεις να τα βάλεις όλα αυτά σε μία γραμμή, σχεδόν σίγουρα θα
κάνεις λάθος και απολύτως σίγουρα όποιος ξαναδιαβάσει τον κώδικα 1 εβδομάδα
μετά (κι εσύ ο ίδιος) δε θα καταλάβει τίποτα. Το δε debugging αυτής της
γραμμής θα έχει πολύ μεγάλη πλάκα. Όταν όλα τα άλλα είναι ίδια, η
αναγνωσιμότητα του κώδικα προέχει.
Επίσης, σε γλώσσες πιο προχωρημένες από τη C, όπως η C++, όπου "μεταβλητή"
μπορεί να είναι κάτι τρομερά πολύπλοκο, η χρήση "κανονικών" μεταβλητών
μερικές φορές επιβάλλεται. Π.χ.
string s1="a";
string s2="b";
const char * s3 = (s1+s2).c_str()
είναι λάθος. Πρέπει αναγκαστικά να ορίσεις μια μεταβλητή temp = s1+s2.
More information about the Linux-greek-users
mailing list