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