【问题标题】:Best way to declare a constant string in C [duplicate]在 C 中声明常量字符串的最佳方法 [重复]
【发布时间】:2017-11-08 09:22:04
【问题描述】:

我有一个字符串:"The world is a beautiful place to live in."

我有两个源文件和一个全局头文件。我可以通过两种简单的方式访问字符串:-

  • 如图所示声明和定义一个常量变量:我可以使用extern来使用它

    const char *str = "The world is a beautiful place to live in.";

  • 使用#define STR "The world is a beautiful place to live in."

在以上两个选项中,C 语言中首选哪一个?

【问题讨论】:

  • 除了“变量”str 的定义是错误的之外,这主要是个人喜好问题,以及你应该如何使用它。
  • 考虑到一个会污染每个包含带有全局变量的标题的翻译单元。答案很明显。

标签: c c-preprocessor constants


【解决方案1】:

你怎么做并不重要(如果你只考虑获取字符串文字也没关系),但如果你想在调试器下跟踪字符串常量,你可能需要使用const char*str = ...

使用宏定义你会得到宏的所有问题 扩张——扩张的副作用,名字的污染 空间,与调试器帮助的偏差等

【讨论】:

    猜你喜欢
    • 2010-09-29
    • 2010-11-28
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 2014-02-09
    相关资源
    最近更新 更多