Δημοσιεύτηκε: 05 Μαρ 2012, 19:43
από migf1
Α, υπάρχει κι άλλη σημαντική διαφορά macros & functions, που έχει να κάνει με τον διαφορετικό τρόπο αντιμετώπισης των ορισμάτων τους (αλλά και των τιμών τους, αν πρόκειται μονάχα για απλά #define χωρίς ορίσματα). Έχει να κάνει με αυτό που σου είχα γράψει παλιότερα να χρησιμοποιείς πάντα παρενθέσεις όταν γράφεις το κυρίως σώμα ενός macro, τόσο στα ορίσματά του, όσο και σε ολόκληρο το κυρίως σώμα αν πρόκειται για expression)

Για να μην γράφω κι άλλο κατεβατό, ρίξε μια ματιά εδώ: http://stackoverflow.com/questions/3211 ... efine-in-c. Έχει πολύ χαρακτηριστικά παραδείγματα που μπορεί να πάνε στραβά αν δεν χρησιμοποιείς σωστά παρενθέσεις στο κυρίως σώμα των macros (μην σε τρομάξουν αυτά που λένε εκεί του τύπου "να μη χρησιμοποιείς ποτέ macros εκτός αν δεν μπορείς να κάνεις αλλιώς"... αυτά τα γράφουν για να υπερ-προστατέψουν αρχάριους. Η αλήθεια είναι πως υπάρχουν ευαίσθητα σημεία, ναι, αλλά η σωστή χρήση των macros και είναι πολύ διαδεδομένη και σε γλιτώνει κι από πολύ κώδικα και σου δίνει και ταχύτητα εκτέλεσης).

Δες επίσης κι αυτό: http://kernelnewbies.org/FAQ/DoWhile0

@starlight: με e-mail.