C/C++ compiler ερώτηση
Theodore Lytras
thlytras at gmail.com
Sat Jun 23 09:50:41 EEST 2012
Καλησπέρα στη λίστα,
θα ήθελα να κάνω μια ερώτηση, δε ξέρω αν είναι αυτονόητη, απλά ήθελα να είμαι
σίγουρος.
Σε ένα λογικό έλεγχο της μορφής:
if (A && B) { blabla(); }
μπορώ να είμαι σίγουρος οτι το A θα ελεγχθεί πάντα πριν από το B, και οτι αν
το A είναι ψευδές το B δε θα ελεγχθεί καθόλου???
Αντίστοιχα μπορώ να είμαι σίγουρος για το:
if (A || B) { blabla(); }
οτι αν το A είναι αληθές το B δε θα ελεγχθεί καθόλου?
Είναι αυτή η στάνταρ συμπεριφορά όλων των C/C++ compiler??
Το background της ερώτησης: μπορώ να είμαι σίγουρος οτι το παρακάτω δε θα
κάνει ποτέ segfault?
class Foo {
public:
bool isSomething() const;
}
Foo* f = 0;
.... // various commands processing f
if (f && f->isSomething()) { blabla(); }
Κάθε άλλη "στυλιστική" παρατήρηση είναι ευπρόσδεκτη...
Ευχαριστώ,
Θοδωρής
--
"Beauty is transitory."
"Beauty survives."
-- Mr. Spock & Capt. Kirk, "That Which Survives", stardate unknown
by Theodore Lytras <thlytras at gmail.com>
More information about the Linux-greek-users
mailing list