我想知道什么在性能方面效果最好? 拥有那个
更好吗?char ar1[5] = "work";
char ar2[5] = "flue";
/*...*/
char ar50[6] = "alias";
或者让#define
:
#define ar1 "work"
#define ar2 "flue"
/*...*/
#define ar50 "alias"
或者它有什么不同?
注意:Iff你不操纵这些字符串,更改数组值等,只使用它们来获取它们的值。
答案 0 :(得分:2)
const char ar1[5] = "work";
const char ar2[5] = "flue";
/*...*/
const char ar50[6] = "alias";
您应该更喜欢上述风格而不是其他风格。我发现以下原因可以这样做。
这些数组变量的类型和大小。因此,您的计划中的类型安全性会更好。
此版本使程序更易于阅读,理解和调试。这是非常重要的属性,我们在编写任何软件时都应该考虑。
没有为macro / #define定义标准,因此可以自由选择不同的编译器 在您的计划中扩展这些策略时的不同策略。可能有一个副本 每次文字出现在源代码中,或者一个主副本共享 实例
修改强>
正如您所提到的,您只是在程序中阅读这些字符串,最好将其设为 const 。这也清楚地表明了程序员对读者的意图。 / p>