如何查找数据类型是否为结构?
How to find if the data type is a struct?
假设你在 C 中有结构 my_struct
。
然后你正在使用 sizeof(my_struct)
来查找该结构有多少字节。有什么方法可以通过在 C 中使用 sizeof()
方法来找出 my_struct
是一个结构吗?
例如,如果我想找出 my_variable
是 16-bit
,那么我只检查 sizeof(my_variable) == 2
.
我可以对 C 中的结构做同样的事情吗?
Can I do the same for struct in C?
sizeof(my_variable)
对结构和非结构做完全相同的事情。
具体来说,
sizeof( my_variable ) == 2
并不意味着变量用完了 16 位。
表示my_variable用完了2个字节。尽管如今一个字节的大小通常为 8 位,但情况并非总是如此。从历史上看,它们有 32 位那么大!
sizeof( my_variable ) == 2
不代表变量可以存储16位数字
sizeof
除了大小之外,没有说明任何类型。
例如,
sizeof( long )
sizeof( float )
和 sizeof( struct { char a; int b; } )
都可以 return 相同的数字。
假设你在 C 中有结构 my_struct
。
然后你正在使用 sizeof(my_struct)
来查找该结构有多少字节。有什么方法可以通过在 C 中使用 sizeof()
方法来找出 my_struct
是一个结构吗?
例如,如果我想找出 my_variable
是 16-bit
,那么我只检查 sizeof(my_variable) == 2
.
我可以对 C 中的结构做同样的事情吗?
Can I do the same for struct in C?
sizeof(my_variable)
对结构和非结构做完全相同的事情。
具体来说,
sizeof( my_variable ) == 2
并不意味着变量用完了 16 位。表示my_variable用完了2个字节。尽管如今一个字节的大小通常为 8 位,但情况并非总是如此。从历史上看,它们有 32 位那么大!
sizeof( my_variable ) == 2
不代表变量可以存储16位数字sizeof
除了大小之外,没有说明任何类型。
例如,
sizeof( long )
sizeof( float )
和 sizeof( struct { char a; int b; } )
都可以 return 相同的数字。