Перейти к содержанию
    

Статический массив

Почему

 

const BUF_SIZE = 100;

unsigned char buf[bUF_SIZE];

 

выдает ошибку компиляции с109 illegal constant expression.

 

const BUF_SIZE = 100;

unsigned char buf[100];

 

- все ок.

 

:05: ?

 

(uVision3 v3.10b, C Compiler CA.EXE v2.00f)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

напишите

#define BUF_SIZE 100
unsigned char buf[BUF_SIZE];

У Вас же применен модификатор const, который говорит о неизменности переменной.

Не путайте константное - выражение с переменной.

А как правильно массив объявлять можно найти в любом учебнике по С.

http://www.citforum.ru/programming/c/h12.shtml#126

 

тип забыл указать после const

по умолчанию предполагается int.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

#define BUF_SIZE 100

const char BUF_SIZE; //если это нужно

Хм, зачем это нужно? После препроцессора получится

const char 100; // полный бред

 

Кстати, в С++ можно использовать const переменную для указания размера массива. Это одно из существенных различий между С и С++. Про const в C++ можно почитать здесь:

 

http://www.possibility.com/Cpp/const.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос был по С.

Кстати, в С++ можно использовать const переменную для указания размера массива. Это одно из существенных различий между С и С++

 

А в ++ я не силен, но Вы правы. Спасибо, теперь я это запомню.

Вот про это на русском:

http://ruseti.ru/book1/Chapter%206/index.htm#12

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...