#include <stdio.h>
#include <stdint.h>
// C11
#define vartype(x) _Generic((x), \
char: "char", \
int: "int", \
double: "double", \
uint32_t: "uint32_t", \
default: "unknown" \
)
int main()
{
char v_char = 'a';
int v_int = 90;
uint32_t v_uint32_t = 9727133;
double v_double = 672.903;
printf("v_char is %s\n", vartype(v_char));
printf("v_int is %s\n", vartype(v_int));
printf("v_uint32_t is %s\n", vartype(v_uint32_t));
printf("v_double is %s\n", vartype(v_double));
return 0;
}
/*
run:
v_char is char
v_int is int
v_uint32_t is uint32_t
v_double is double
*/