Δημοσιεύτηκε: 11 Ιούλ 2011, 19:28
Qdata έγραψε:Star_Light έγραψε:δεν μου το χτυπησε ο μεταγλωτιστης παντως το ερωτηματικο :/
Thanks για την επισημανση.
Όντως.Ούτε εμένα μου έβγαλε σφάλμα ο gcc με το ερωτηματικό.Δεν ξέρω γιατί.
Πάντως η κύρια σύνταξη είναι:
- Κώδικας: Επιλογή όλων
#define ΣΤΑΘΕΡΆ ΤΙΜΉ
Βασικά τα macros απλά αντικαθιστούν το όνομά τους με τον κώδικα που τους βάζουμε στο #define τους. Το ; που δεν βάζουμε στο τέλος του κώδικά τους, το βάζουμε όταν καλούμε το όνομά τους.
Π.χ. αν έχουμε ένα macro που δίνει το ελάχιστο μεταξύ 2 αριθμών...
- Κώδικας: Επιλογή όλων
#define MIN(x,y) (x) < (y) ? x : y
όταν το καλέσουμε, θα βάλουμε ; στο τέλος εμείς. Π.χ.
- Κώδικας: Επιλογή όλων
int a=10, b=20, c;
c = MIN(a,b);
Αν όμως έχουμε ένα macro που είναι μια συνθήκη, π.χ. αν το όρισμά του είναι ψηφίο...
- Κώδικας: Επιλογή όλων
#define ISDIGIT(c) ( (c) >= '0' && (c) <= '9' )
τότε όταν το καλέσουμε σε ένα if δεν θα του βάλουμε ; στο τέλος...
- Κώδικας: Επιλογή όλων
int c = getchar();
if ( ISDIGIT(c) )
...