如何在运行时检查C中变量的类型?

Jam*_*sev 8 c type-conversion

是否有可能在整个代码中的任何给定点检查变量的类型?

比如说,我宣布char y = 1; 和功能int SomeFunction (int).然后我将传递ysomeFunction它,它将被转换为一个int并最终int将被返回.

我知道这是因为函数声明.我想,但是要确认内部someFunction,变量实际上是类型int和返回的变量someFunction也是int.

这可以在C中完成,还是应该依赖函数声明?C编程语言是否提供了在运行时检查变量类型的任何机制?

Mat*_*Mat 6

在您的代码中,您可以依赖于您所交付的类型与它们的声明方式相对应的事实.如果不是这样,你就不能写任何非平凡的程序.

C中的类型信息仅在编译时可用.在运行时,没有任何信息存在,因此没有标准的内置方式,例如,告诉什么类型的对象隐藏在随机指针后面.
如果你需要那种信息,看看你的编译器是否有扩展(我不知道是否有),或者使用为其提供基础设施的框架(glib有我认为的那样).
如果你确实需要的话,可以自己滚动.

或者使用C++,它确实有一些运行时类型信息支持,一般来说是一个更复杂的类型系统,但这是一种完全不同的语言.