【发布时间】:2019-04-23 18:24:07
【问题描述】:
以下内容在任何实现中总是正确的吗?
(strlen("some string with weird characters") + 1) * sizeof(char)
== sizeof("some string with weird characters");
我在问我是否可以可靠地使用(strlen(my_string) + 1) * sizeof(char) 来计算任何字符串的二进制大小。另外,如果有更好的方法,请告诉我。
【问题讨论】:
-
sizeof(char)根据定义为 1。因此,将任何内容乘以或除以sizeof(char)是不好的风格。 -
@zwol:除非你想神奇地获得一个没有标题的
size_t类型到typedef它。 ;-) -
@R.. 嗯,是的,我想这可能很有用,但你什么时候可以不包括
stddef.h? -
是的,您可以使用
strlen()+1可靠地计算任何 string 的大小,但是您需要知道并非所有字符串文字都描述了 string i>. -
字符串是由第一个空字符终止并包括第一个空字符的连续字符序列。