Let\'s try to run the following code:
#include
#define MY_MACRO1(isArray,y) do { \\
if(isArray) \\
Let me first say that I don't think you should use macro for this. You should have 2 separate functions instead, with possibly additional _Generic expression as shown in Lundins answer.
However, it is possible to do with multiple macro defines:
#define MY_MACRO(isArray,y) MY_MACRO_ ## isArray (y)
#define MY_MACRO_0(y) printf("%d", y)
#define MY_MACRO_1(y) printf("%d", y[0])