【问题标题】:Type of a variable in language C [duplicate]C语言中变量的类型[重复]
【发布时间】:2017-10-30 19:26:07
【问题描述】:

如何知道C中变量的类型?

我试过 sizeof() 但我不相信答案,我不知道如何在 C 中使用 typeof()。

一些帮助?

如果我们有例如: int i ; 那么('A' + i)的类型是什么。我虽然我可以做类似的事情 printf("%s", typeof('A' + i)); 显示我的表达式的正确类型,但我不知道 gcc 表达式是如何工作的。

请帮忙!

【问题讨论】:

  • C 中没有反射。
  • 您能更具体地说明您要做什么吗?
  • C 是静态类型的,因此查找变量的声明会为您提供准确的数据类型。
  • 就像@HuStmpHrrrr 所说,C 中没有办法。你的用例是什么?也许有其他解决方案。
  • 您不能不相信sizeof 运算符的结果。如果您的编译器严重损坏以至于无法正确计算大小,那么您几乎不能依赖它来处理任何事情。如果sizeof 产生的结果让你感到惊讶,那可能是因为你对操作数有一些误解。

标签: c variables


【解决方案1】:

内省/反射,在 C 语言中不受支持。但是,GCC 中有一个 typeof extension(不是 ANSI 的一部分)

【讨论】:

  • 如果我们有例子: int i ;那么('A' + i)的类型是什么。我虽然我可以做类似 printf("%s", typeof('A' + i));显示我的表达式的正确类型,但我不知道 gcc 表达式是如何工作的。
  • 这不是它的工作方式,typeof 扩展基本上允许您使用另一个变量的类型来声明一个变量。类似于 C++ 中的 auto 关键字。
猜你喜欢
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
  • 2013-02-03
  • 1970-01-01
  • 2015-12-14
  • 1970-01-01
  • 1970-01-01
  • 2013-11-14
相关资源
最近更新 更多