Vala - 常量而不是幻数
Vala - constant instead of magic number
在 C 中我可以做类似的事情
#define SIZE 16
int c[SIZE];
但在 Vala 时我这样做
const int SIZE = 16;
int c[SIZE];
我在编译期间遇到以 "undeclared here (not in a function)"
结尾的错误
有什么办法可以去除vala中的幻数并用常量替换它们吗?
动态分配是可行的方法:
const int SIZE = 16;
int[] c = new int[SIZE];
特别是如果 SIZE 是您通过 vapi 文件绑定到的某些 C 头文件的一部分。
在 vapi 情况下,静态分配也适用:
mylib.h
#define MYLIB_SIZE 16
mylib.vapi
namespace Mylib {
// You can optionally specify the cname here:
//[CCode (cname = "MYLIB_SIZE")]
const int SIZE;
}
main.vala
int c[Mylib.SIZE];
在 C 中我可以做类似的事情
#define SIZE 16
int c[SIZE];
但在 Vala 时我这样做
const int SIZE = 16;
int c[SIZE];
我在编译期间遇到以 "undeclared here (not in a function)"
结尾的错误有什么办法可以去除vala中的幻数并用常量替换它们吗?
动态分配是可行的方法:
const int SIZE = 16;
int[] c = new int[SIZE];
特别是如果 SIZE 是您通过 vapi 文件绑定到的某些 C 头文件的一部分。
在 vapi 情况下,静态分配也适用:
mylib.h
#define MYLIB_SIZE 16
mylib.vapi
namespace Mylib {
// You can optionally specify the cname here:
//[CCode (cname = "MYLIB_SIZE")]
const int SIZE;
}
main.vala
int c[Mylib.SIZE];