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ł?