繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM