ciao a tutti, vi faccio una domanda che per molti di voi probabilmente risulterà essere una cavolata:
nel file pippo.h ho:
mentre in pippo.cpp ho:codice:#ifndef SC_DEFINE_MESSAGE #define SC_DEFINE_MESSAGE(id,unused1,unused2) \ namespace sc_core { extern const char id[]; } } #endif SC_DEFINE_MESSAGE(SC_ID_STRING_TOO_LONG_, 801, "string is too long") SC_DEFINE_MESSAGE(SC_ID_FRONT_ON_EMPTY_LIST_, 802, "attempt to take front() on an empty list")
mi chiedo:codice:namespace sc_core { #define SC_DEFINE_MESSAGE(id,unused,text) extern const char id[] = text; #include "sysc/utils/pippo.h" #undef SC_DEFINE_MESSAGE
1) nel cpp trovo, che senso ha scrivere extern sia nell'h che nel cpp dopo aver definito la variabile nel cpp?codice:extern const char id[] = text;![]()
2) i due SC_DEFINE_MESSAGE vanno in conflitto? non riesco a capire come agisce in questo caso il precompilatore!!!!![]()
![]()
grazie mille!!
Marco

Rispondi quotando