Could I retrieve the datatype from a variable in C?

This is called type introspection or reflection and is not supported by the C language. You would probably have to write your own reflection library, and it would be a significant effort.


There is a typeof extension in GCC, but it's not in ANSI C: http://tigcc.ticalc.org/doc/gnuexts.html#SEC69


The fact that foo is an int is bound to the name foo. It can never change. So how would such a test be meaningful? The only case it could be useful at all is in macros, where foo could expand to different-type variables or expressions. In that case, you could look at some of my past questions related to the topic:

Type-generic programming with macros: tricks to determine type?

Determining presence of prototype with correct return type

Tags:

C

Types