g ++ 4.7.2
您好,
我来自C89,现在我正在使用g ++编译器进行c ++。
通常我会做这样的事情:
#define ARR_SIZE 64
#define DEVICE "DEVICE_64"
在C ++中这样做有什么用呢?
非常感谢任何建议,
答案 0 :(得分:11)
#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)
除了类型检查之外,大多数C代码在没有使用C ++编译器进行更改的情况下进行编译。所以#define在C ++中仍然有效。
您可能希望查看其他stackoverflow条目,例如:
Should I use #define, enum or const?
What issues can I expect compiling C code with a C++ compiler?