Ошибка при определении массива, даже если он установлен через константу - PullRequest
1 голос
/ 15 апреля 2009

Я знаю, что это действительно просто, но это поставило меня в тупик ...

В Objective-C я пытаюсь написать:

const int BUF_SIZE = 3;

static char buffer[BUF_SIZE+1]; 

Но я получаю, что размер буфера не постоянен. Как я могу заставить Xcode понять, что я устанавливаю его на константу, + 1 ...? Или это невозможно ...?

Спасибо ...!

Joel

Ответы [ 3 ]

3 голосов
/ 15 апреля 2009

Я думаю, что это вещь C - если я правильно помню, C позволяет вам определять размеры массива только с помощью литеральных выражений (без символов). Я бы просто использовал константу #define в качестве обходного пути.

1 голос
/ 03 декабря 2010

происходит в gcc с такими вещами, как:

#define LPBUFFER_LGTH ((int) (2*MS25))

также. Обходной путь, как указано выше: жестко закодируйте нужную вам константу. Я думаю, что проблема заключается в «определить определение», т.е. дважды.

1 голос
/ 19 апреля 2009

Вы можете использовать перечисление:

enum
{
    BUF_SIZE = 3
};

или макрос

#define BUF_SIZE 3
...