Επισκέπτης Δημοσ. 16 Σεπτεμβρίου 2007 Δημοσ. 16 Σεπτεμβρίου 2007 Kalispera, Mporei kapoios na mou eksigisei giati auto douleuei: > #include <stdio.h> #define TEST 1,2,3,4 #define RETRIEVETEST(a,b,c,d) d #define GETTEST(a) RETRIEVETEST(a) int main() { printf( "Should print four: %d\n", GETTEST( TEST ) ); return 0; } kai auto oxi ? > include <stdio.h> #define TEST 1,2,3,4 #define RETRIEVETEST(a) AFTER(a) #define AFTER(a,b,c,d) d #define GETTEST(a) RETRIEVETEST(a) int main() { printf( "Should print four: %d\n", GETTEST( TEST ) ); return 0; } Se vc++ fusika den douleuei kanena apo ta 2, se gcc mono to 1o. Upo8etw oti exei na kanei me ton tropo kai tin seira me tin opoia o preprocessor tis C kanei tis antikatastaseis alla den mporw katalabw. Kamia idea? PS. Epishs to printf( "Should print four: %d\n", GETTEST( 1,2,3,4) ); petaei error gia invalid arguments Thanks
Directx Δημοσ. 16 Σεπτεμβρίου 2007 Δημοσ. 16 Σεπτεμβρίου 2007 Για την ιστορία ο πρώτος κώδικας περνά μια χαρά σε CodeGear/Borland Turbo C++ Explorer Ο δεύτερος όχι - για τον λόγο που αναφέρεις, λάθος αριθμός παραμέτρων δηλαδή. Από εκεί και πέρα, ο ακριβής τρόπος που λειτουργεί ο C-preprocessor είναι αρκετά περίπλοκος όπως παρατηρεί και ο Διομήδης Σπινέλλης στο http://www.spinellis.gr/blog/20060626/index.html.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.