2015-10-27 2 views
1

В CI может сделать что-то вродеВала - константа вместо магического числа

#define SIZE 16 
int c[SIZE]; 

но в Vala, когда я

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

я получаю ошибку во время компиляции, которая заканчивается «необъявленная здесь (не в a функция) «

Есть ли способ удалить магические числа в вала и заменить их на константы?

+1

Как вы думаете, '#define SIZE 16' и' const int SIZE = 16; 'такие же? – haccks

+0

, конечно, нет, но это самая близкая вещь, о которой я мог думать –

+0

Где вы разместили 'int c [SIZE];'? Внутри 'main'/function или вы объявили его глобальным? – haccks

ответ

1

Динамическое распределение является путь:

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

Особенно если SIZE является частью какого-либо файла заголовка C, что вы связыванию с помощью файла вапи.

В вапи случае статического распределения работ, а также:

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

это потрясающе :) спасибо, как только я вернусь домой, я попробую это .... выглядит многообещающим, хотя :) –

 Смежные вопросы

  • Нет связанных вопросов^_^