Sprawdź, czy argument makro jest wskaźnikiem, czy nie

Czy jest jakiś „miły” sposób na sprawdzenie, czy zmienna przekazana do makra jest wskaźnikiem? na przykład

#define IS_PTR(x) something
int a;
#if IS_PTR(a)
printf("a pointer we have\n");
#else
printf("not a pointer we have\n");
#endif

Chodzi o to, że nie jest to wykonywane w czasie wykonywania, ale w czasie kompilacji, jak w: otrzymujemy inny kod w zależności od tego, czy zmienna jest wskaźnikiem, czy nie. Chciałbym więc, aby IS_PTR () w jakiś sposób oceniał pewien rodzaj stałego wyrażenia. Czy źle rozumiem ten pomysł?

questionAnswers(3)

yourAnswerToTheQuestion