Vala - 常数而不是幻数

时间:2015-10-27 06:29:17

标签: c gtk constants vala

在C中我可以做类似

的事情
#define SIZE 16
int c[SIZE];

但在我做Vala时

const int SIZE = 16;
int c[SIZE];

我在编译期间收到错误,结果是"未声明此处(不在函数中)"

有没有办法在vala中删除幻数并用常量替换它们?

1 个答案:

答案 0 :(得分:1)

动态分配是要走的路:

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];