Sto provando a fare qualcosa come il seguente;Esiste una direttiva preprocessore GCC per verificare se il codice viene compilato su una macchina a 64 bit?
#ifdef 64-bit
#define DECIMAL_FORMAT %ld
#else
#define DECIMAL_FORMAT %d
#endif
.
intptr_t d;
.
printf(“Some message with DECIMAL_FORMAT in the middle of it\n”, d);
Il 'd' variabile essendo del tipo 'intptr_t' esigenze '% d' identificatore di formato su macchine a 32 bit e di formato '% ld' su 64 macchine bit. Sto cercando una soluzione per poter compilare il codice su macchine a 32 bit e macchine a 64 bit senza apportare modifiche alla riga di comando GCC o al codice sorgente.
Sono d'accordo con la tua filosofia generale, ma tieni presente che non devi dipendere da indicatori che si inseriscono in un lungo. Su Windows 64-bit, non lo fanno (http://msdn.microsoft.com/en-us/library/s3f49ktz(VS.71).aspx). Per i puntatori, "% p" è il modo giusto (come sottolineato da Fred Larsen). –