реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Статический массив
adnega
сообщение May 15 2007, 08:14
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Почему

const BUF_SIZE = 100;
unsigned char buf[BUF_SIZE];

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

const BUF_SIZE = 100;
unsigned char buf[100];

- все ок.

05.gif ?

(uVision3 v3.10b, C Compiler CA.EXE v2.00f)
Go to the top of the page
 
+Quote Post
vromanov
сообщение May 15 2007, 08:36
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 70
Регистрация: 27-03-07
Пользователь №: 26 533



const int BUF_SIZE = 100;
тип забыл указать после const
Go to the top of the page
 
+Quote Post
VAI
сообщение May 15 2007, 08:53
Сообщение #3


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



напишите
Код
#define BUF_SIZE 100
unsigned char buf[BUF_SIZE];

У Вас же применен модификатор const, который говорит о неизменности переменной.
Не путайте константное - выражение с переменной.
А как правильно массив объявлять можно найти в любом учебнике по С.
http://www.citforum.ru/programming/c/h12.shtml#126

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

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


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post
vromanov
сообщение May 15 2007, 12:01
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 70
Регистрация: 27-03-07
Пользователь №: 26 533



Да, согласен.
Go to the top of the page
 
+Quote Post
lebiga
сообщение May 15 2007, 12:29
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 22-06-06
Из: Киев
Пользователь №: 18 292



#define BUF_SIZE 100
const char BUF_SIZE; //если это нужно
unsigned char buf[BUF_SIZE];
Go to the top of the page
 
+Quote Post
scifi
сообщение May 15 2007, 13:21
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(lebiga @ May 15 2007, 16:29) *
#define BUF_SIZE 100
const char BUF_SIZE; //если это нужно

Хм, зачем это нужно? После препроцессора получится
const char 100; // полный бред

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

http://www.possibility.com/Cpp/const.html
Go to the top of the page
 
+Quote Post
VAI
сообщение May 15 2007, 23:47
Сообщение #7


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



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


А в ++ я не силен, но Вы правы. Спасибо, теперь я это запомню.
Вот про это на русском:
http://ruseti.ru/book1/Chapter%206/index.htm#12


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 21:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016