Est-il un GCC directive de préprocesseur pour vérifier si le code est compilé sur un ordinateur 64 bits?

Je suis en train de faire quelque chose comme ce qui suit;

#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);

La variable " d "etre de type "intptr_t" besoins "%d' spécificateur de format de 32 bits machines et spécificateur de format '%ld' sur 64 bits machines. Je suis à la recherche d'une solution pour pouvoir compiler le code sur 32 bits machines et 64 bits des machines sans apporter de modifications à la GCC en ligne de commande ou dans le code source.

OriginalL'auteur Vilmorin | 2009-03-25