[英]How to check the type of the variable in C at runtime?
是否有可能在整个代码中的任何给定点检查变量的类型?
比如说,我声明char y = 1
; 和函数int SomeFunction (int)
。 然后我将y
传递给someFunction
,它将转换为int
并最终返回int
。
我知道这是因为函数声明。 但是,我想确认在someFunction
,变量实际上是int
类型,而someFunction
返回的变量也是int
。
这可以在C中完成,还是应该依赖函数声明? C编程语言是否提供了在运行时检查变量类型的任何机制?
在您的代码中,您可以依赖于您所交付的类型与它们的声明方式相对应的事实。 如果不是这样,你就不能写任何非平凡的程序。
C中的类型信息仅在编译时可用。 在运行时,没有任何信息存在,因此没有标准的内置方式,例如,告诉什么类型的对象隐藏在随机指针后面。
如果你需要那种信息,看看你的编译器是否有扩展(我不知道是否有),或者使用为其提供基础设施的框架( glib
有我认为的那样)。
如果你确实需要的话,可以自己滚动。
或者使用C ++,它确实有一些运行时类型信息支持,一般来说是一个更复杂的类型系统,但这是一种完全不同的语言。
C类型主要存在于编译时。
你可以提高你的编译器警告级别以获得更好的检查(EG gcc -ansi -pedantic -Wall),但我相信有些东西仍然会根据需要被强制执行。
对于某些任务,您可以使用联合进行手动类型管理,但在C中,通常最好只依靠编译器进行类型检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.