【发布时间】:2021-12-16 09:44:41
【问题描述】:
假设您在 C 中具有结构 my_struct。
然后您使用sizeof(my_struct) 来查找该结构有多少字节。有什么方法可以通过在 C 中使用 sizeof() 方法来找出 my_struct 是一个结构?
例如,如果我想知道my_variable 是16-bit,那么我只需检查sizeof(my_variable) == 2。
我可以对 C 中的 struct 做同样的事情吗?
【问题讨论】:
-
当然不是,因为可能有一个大小为 2 的结构。
-
没有。为什么你甚至想这样做?这是你的代码,你知道类型是什么。
-
如果确实存在这样的自省功能,
sizeof将不适合它(“这是一个结构吗?”与“这个东西有多大以字节为单位”的问题有关?”)。我不知道这种语言功能。但我很好奇,如果它确实存在,你会用它做什么? -
检查您的变量的大小是否为 2 并且“因此”为 16 位,在 C 中仍然没有任何意义。它是一个短的、无符号的短的、(非常短的)字符串, 2个字符的结构?
-
@Alexander 在 Python 中,您可以使用检查值是整数还是浮点数,并根据结果将其传递给不同的控制流。尽管无论如何我都想不出一个真正好的理由。也许 OP 正在沿着这些思路思考。