c++ - 为什么#define 不好,什么是合适的替代品?

标签 c++

#define dItemName        L"CellPhone"

最佳答案

将其定义为常量变量。这是一个很好的编程习惯。

const wchar_t *dItemName = L"CellPhone";

如果您稍后需要知道字符串的长度,则将其定义为数组:

const wchar_t dItemName[] = L"CellPhone";

此外,为什么#define 不好:它将所有使用单词 dItemName 的地方转换为 L"CellPhone"。示例:

struct {
  int dItemName;
} SomeStruct;

将失效:

struct {
  int L"CellPhone";
} SomeStruct;

关于c++ - 为什么#define 不好,什么是合适的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4715831/

相关文章:

c++ - C++中数组的构造函数初始化列表

c++ - 为什么在 Windows 启动时无法使用 fstream 创建/写入文件?

c++ - 如何在 OpenGL 中绘制顶点之间的边?

c++ - 我如何用两个不同的参数值调用我的模拟方法两次

c++ - 为什么我的程序打印默认构造函数?

c++ - 为什么不使用 std::getline 就可以调用 getline?

c++ - C/C++ 宏中的逗号

c++ - 使用 TinyXML 修改文档

c++ - 将 vector<Foo> 转换为 vector<double> 并找到最小值

c++ - 为什么同样的语句对 C++ 中的类成员不起作用?