我可以用Perl获取sizeof(C中的字节长度)吗?
my $byte_length_in_C_of_int = ...;
编辑:
perlpacktut/Integers: 在第一次阅读之后,我认为“sizeof(...)”和“$ Config {... size}”可能会有所不同,但在重新阅读之后,我认为$ Config {intsize}给出了我的C_int字节长度。
答案 0 :(得分:6)
是的,但最好知道你需要它。
如果您正在构建一个数据结构以与其他二进制应用程序进行通信,那么最好的选择是使用pack - 正确的格式组合可以让您使用任何类型的任何一种本机或特定定义的大小,它还处理结构对齐,长度前缀字符串和TLV等内容。
对于其他用途,您可能会更好地查看Config。各种类型的大小都有变量,包括intsize
,longsize
,ptrsize
,doublesize
,longlongsize
(如果d_longlong
是set),longdblsize
(如果设置了d_longdbl
),ivtype
/ ivsize
,nvtype
/ nvsize
(对于Perl的内部数字类型),和byteorder
(所以你可以弄清楚字节顺序)。