【发布时间】:2017-07-29 08:53:22
【问题描述】:
在探索 SQLite 源代码以进行学习时,我在源代码的许多地方都发现了这一点;
#define SQLITE_LOCK_NONE 0
#define SQLITE_LOCK_SHARED 1
#define SQLITE_LOCK_RESERVED 2
#define SQLITE_LOCK_PENDING 3
#define SQLITE_LOCK_EXCLUSIVE 4
#define SQLITE_IOCAP_ATOMIC 0x00000001
#define SQLITE_IOCAP_ATOMIC512 0x00000002
#define SQLITE_IOCAP_ATOMIC1K 0x00000004
#define SQLITE_IOCAP_ATOMIC2K 0x00000008
#define SQLITE_IOCAP_ATOMIC4K 0x00000010
这是现代 C++(C++11、14、17)中的标准,还是在现代 C++ 中有不同的方法来做到这一点?
【问题讨论】:
-
"或者在现代 C++ 中有不同的方法可以做到这一点吗?" 可以使用枚举而不是
#define。 -
对于常量,任何东西都比
#define好。const int SQLITE_LOCK_NONE = 0;有什么问题?但实际上看起来你想要一个枚举 -
SQLite 不是用 C 写的吗?与现代 C++ 相比如何?
-
@tobi303 "
const int有什么问题"它在文本段中占用内存。 -
@user0042 比占用不受任何命名空间或任何东西的名称更好