Βρε παιδιά, στην C τι ρόλο βαρά το #define;!
Ευχαριστώ πολύ...
Συντονιστής: konnn



Qdata έγραψε:Η οδηγία #define ορίζει ένα αναγνωριστικό και ένα σύνολο χαρακτήρων που θα αντικαταστήσει αυτό το αναγνωριστικό κατά τη διάρκεια της μεταγλώττισης του πηγαίου κώδικα.Η σύνταξη της οδηγίας είναι:
#define αναγνωριστικό χαρακτήρες
όπου το αναγνωριστικό αντικαθιστάτε στο στάδιο της μεταγλώττισης από τους χαρακτήρες, σε όποιο σημείο του πηγαίου κώδικα και αν βρεθεί.
Συνήθως χρησιμοποιούμε την οδηγία #define για να ορίσουμε κάποιες σταθερές του προγράμματός μας.
Off topic:
Στο μέλλον αν έχεις κάποια απορία που αφορά την γλώσσα προγραμματισμού C ή C++ ρώτα σε αυτό το θέμα=> viewtopic.php?f=6&t=18969

stamatiou έγραψε:Σαν variables δηλαδή;
#define PI 3.14159265
main()
{
int x = 2;
float xpix;
xpix = PI*x;
printf("%f\n", xpix);
}Μεταφέρθηκε στην κατάλληλη ενότητα!

Qdata έγραψε:stamatiou έγραψε:Σαν variables δηλαδή;
Όχι μεταβλητή αλλά το αντίθετο: Σταθερά!Πχ δίνεις:
- Κώδικας: Επιλογή όλων
#define PI 3.14159265
main()
{
int x = 2;
float xpix;
xpix = PI*x;
printf("%f\n", xpix);
}
Όπου PI το αναγνωριστικό και 3.14159265 οι χαρακτήρες ή αλλιώς η τιμή που αποδίδεται στο αναγνωριστικό.Η τιμή του PI δεν πρόκειται να αλλάξει μέσα στο πρόγραμμα.Δηλαδή με την οδηγία #define ορίζεις μια σταθερά.Εγώ έδωσα σαν σταθερά το PI(π) που όπως θα ξέρεις στα μαθηματικά δεν αλλάζει ποτέ.Δηλαδή αν κάνεις ένα πρόγραμμα που υπολογίζει εμβαδόν κύκλου μπορείς να χρησιμοποιήσεις το PI ως σταθερά(δηλώνοντάς το με την οδηγία #define) αφού δεν θα χρειαστεί μέσα στο πρόγραμμα να πάρει μια άλλη τιμή.Μεταφέρθηκε στην κατάλληλη ενότητα!

#include <stdio.h>
main()
{
int x = 2;
printf("%d\n", x);
fuction1();
}
fuction1()
{
printf("%d\n", x);
}
$ gcc test.c -o test
tsst.c: In function ‘fuction1’:
tsst.c:12:17: error: ‘x’ undeclared (first use in this function)
tsst.c:12:17: note: each undeclared identifier is reported only once for each function it appears in
#include <stdio.h>
#define x 2
main()
{
printf("%d\n", x);
fuction1();
}
fuction1()
{
printf("%d\n", x);
}
$ gcc test.c -o test
$ ./test
2
2



