Como mostro o valor de um #define em tempo de compilação no gcc

Até agora eu tenho tanto quanto:

#define ADEFINE "23"
#pragma message ("ADEFINE" ADEFINE)

O que funciona, mas e se o ADEFINE não for uma string?

#define ADEFINE 23
#pragma message ("ADEFINE" ADEFINE)

causas

warning: 'mensagem de pragma' malformada, ignorada

Ideally eu gostaria de poder lidar com qualquer valor, incluindo indefinid

questionAnswers(4)

yourAnswerToTheQuestion