5

g++ 4.7.2

你好,

我来自 C89,现在我正在使用 g++ 编译器做 c++。

通常我会做这样的事情:

#define ARR_SIZE 64
#define DEVICE "DEVICE_64"

在 C++ 中执行此操作的等价物是什么?

非常感谢您的任何建议,

4

5 回答 5

11

#define在 C++ 中有。因此,您可以编写相同的代码。但是对于像这样的常数,最好使用 const 关键字。

const int ARR_SIZE = 64;
const std::string DEVICE("DEVICE_64");
于 2012-12-15T11:09:57.837 回答
4

您可以使用const# 代替define

  const int ARR_SIZE = 64;
  const char DEVICE[] = "DEVICE_64";
于 2012-12-15T11:07:48.160 回答
3

const您可以使用关键字定义常量:

const int ARR_SIZE = 64;
const char DEVICE[] = "DEVICE_64";
于 2012-12-15T11:07:16.603 回答
3

最好使用匿名命名空间(仅限于当前文件):

namespace {
    int const ARR_SIZE = 64;
    /* ... */
}
于 2012-12-15T11:09:00.223 回答
1

#define 没问题!

除类型检查外,大多数 C 代码都无需更改即可使用 C++ 编译器进行编译。所以#define 在 C++ 中仍然有效。

您可能想查看其他 stackoverflow 条目,例如:

我应该使用#define、枚举还是常量?

使用 C++ 编译器编译 C 代码会出现什么问题?

于 2012-12-15T11:21:11.257 回答