如何检查变量的类型?

Pro*_*ber 2 c objective-c

我想知道someVariable是int还是float类型.我该怎么做检查?

编辑:在运行时的代码中!在IDE中很简单.我想知道是否有某种类型的运算符来查看你是处理int,float,long,char,unsigned char,long long还是其他什么.

R..*_*R.. 10

if ((1?1:var)/2) {
    /* it's floating point */
} else {
    /* it's an integer */
}
Run Code Online (Sandbox Code Playgroud)

  • @Daniel:也许还有系统定义的类型.例如,`time_t`是一种算术类型,但它是实现定义的,无论它是浮点还是整数. (3认同)
  • 请注意,`(0*var + 1)/ 2`也可以工作,但它会评估`var`,如果`var`是一个带副作用的表达式,可能会产生不必要的副作用. (2认同)
  • 至于它什么时候有用,我认为C++模板已经很好地确定了*泛型编程*是一个强大的工具.巧妙地使用`?:`运算符也可以在C中实现许多通用编程.像`SERIALIZE()`,`SQRT()`,`LOG2()`等操作可能都有一个浮点参数与整数参数的非常不同的实现,我描述的方法可以让你用一个"功能"的名称. (2认同)