是否可以在整个代码中的任何给定点检查变量的类型?
例如,我声明 char y = 1
;和函数 int SomeFunction (int)
。然后我会将 y
传递给 someFunction
,它会被转换为 int
并最终返回 int
。
我知道这是因为函数声明。不过,我想确认在 someFunction
中,变量实际上是 int
类型,并且从 someFunction
返回的变量也是一个 int
.
这可以在 C 中完成,还是应该依赖于函数声明? C 编程语言是否提供任何在运行时检查变量类型的机制?
最佳答案
在您的代码中,您可以依赖这样一个事实,即您收到的类型对应于它们的声明方式。如果不是这种情况,您将无法编写任何重要的程序。
C 中的类型信息仅在编译时可用。在运行时,这些信息都不存在,因此没有标准的内置方法,例如,告诉什么类型的对象隐藏在随机指针后面。
如果您需要此类信息,请查看您的编译器是否具有扩展(我不知道是否有),或使用为此提供基础结构的框架(我相信 glib
有类似的东西)。
如果您真的需要它,也可以自己动手。
或者使用 C++,它确实有一些运行时类型信息支持,并且通常来说是一个更复杂的类型系统,但那是一种完全不同的语言。
关于c - 如何在运行时检查 C 中变量的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8631159/