【发布时间】:2021-11-13 13:27:58
【问题描述】:
我了解在运行时,const char text[] = "some char array" 与 const char text[16] = "some char array" 相同。
编译时间有什么不同吗?我认为会有,因为告诉编译器数组中有多少元素应该比计算元素数量要快。我知道,即使它有所作为,它也会微不足道,但是我的好奇心占了上风,所以我想我会问。
【问题讨论】:
-
编译器已经知道解析后的字符串有多长。
-
为了表明编译器在任何情况下都必须计数,您可以尝试编译类似 const char text[5] = "too long";
-
也尝试编译
int a[]; int b[5];。 -
如果我有一个初始化器,我总是不喜欢硬编码一个值。如果我更改初始化程序,我不需要以这种方式更改任何其他内容。此外,这都是编译时间,所以虽然您可以节省一些编译时间,但对运行时间没有影响。
标签: c++ compilation micro-optimization