在c ++中#define等效

时间:2012-12-15 11:04:21

标签: c++

g ++ 4.7.2

您好,

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

通常我会做这样的事情:

#define ARR_SIZE 64
#define DEVICE "DEVICE_64"

在C ++中这样做有什么用呢?

非常感谢任何建议,

5 个答案:

答案 0 :(得分:11)

C ++中有

#define。所以你可以编写相同的代码。但对于像这样的常量,最好使用const关键字。

const int ARR_SIZE = 64;
const std::string DEVICE("DEVICE_64");

答案 1 :(得分:4)

您可以使用const代替#define

  const int ARR_SIZE = 64;
  const char DEVICE[] = "DEVICE_64";

答案 2 :(得分:3)

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

const int ARR_SIZE = 64;
const char DEVICE[] = "DEVICE_64";

答案 3 :(得分:3)

为此使用匿名命名空间(限于当前文件)甚至更好:

namespace {
    int const ARR_SIZE = 64;
    /* ... */
}

答案 4 :(得分:1)

#define没问题!

除了类型检查之外,大多数C代码在没有使用C ++编译器进行更改的情况下进行编译。所以#define在C ++中仍然有效。

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

Should I use #define, enum or const?

What issues can I expect compiling C code with a C++ compiler?