Εργαστήριο Τεχνολογίας Λογισμικού
0 votes
332 views

Στο αρχείο επικεφαλίδας babyratio.hpp

in progtech by (790 points) | 332 views

1 Answer

0 votes

Το ifndef ειναι συντομογραφία του "if not defined". To block #ifndef .... #endif γίνεται compile σε περίπτωση που δεν έχει οριστεί η σταθερά που υπάρχει δίπλα (στην προκειμένη περίπτωση η CONTEST). Έτσι, όταν κάνετε compile εσείς τον κωδικά σας, επειδή ακριβώς η σταθερά CONTEST δεν είναι ορισμένη, συμπεριλαμβάνεται στη μεταγλώττιση και το κομμάτι κώδικα που υπάρχει εντός του block, δηλαδή το #include “babyratio.hpp”. Ωστόσο, όταν ανεβαίνει στον grader, επειδή εκεί η σταθερά CONTEST είναι ορισμένη, το #include “babyratio.hpp” δεν συμπεριλαμβάνεται στο compilation. Άρα έχουμε έναν εύσχημο τρόπο ο ίδιος κώδικας να χρησιμοποιεί το header file στο ένα περιβάλλον και να μην το χρησιμοποιεί στο άλλο.

by (790 points)

301 questions

289 answers

288 comments

909 users