Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

#define в определении массива

19K
27 августа 2006 года
t01
4 / / 27.08.2006
попытался сделать
#define ArrSize 100
..
double ArrName_1 [ArrSize]

выдает ошибку :(

+ в цикле этот же ArrSize попытался использовать как
for (i = 0; i < ArrSize; ++i) { ... }

тоже ошибка :(


Так нельзя делать?

+ Как можно в С (и можно ли) задать массив с константным числом элементов (используя заданную раньше константу)?

Спасибо за ответы.
3
27 августа 2006 года
Green
4.8K / / 20.01.2000
Текст ошибки, наверное, военная тайна?
Не пробовал ставить точку с запятной после опредления массива?
15K
27 августа 2006 года
de-em
15 / / 10.08.2006
Добрых суток. А у меня работает. 1) где ты прописал define? 2)какую ошибку? 3) В С можно использовать константу заданную раньше. Попробуй объявить ее в heder файле (в .h) твоего исходника там где объявляются у тебя include, т.е. после них. И тогда должно все заработать.
3
27 августа 2006 года
Green
4.8K / / 20.01.2000
Только header-ы тут не при чем.
15K
28 августа 2006 года
de-em
15 / / 10.08.2006
Абсолютно согласен, но может быть так будет меньше путаницы, в итоге.
19K
28 августа 2006 года
t01
4 / / 27.08.2006
вот текст программы:

#include <stdio.h>
#include <stdlib.h>

#define arrsize 10;

int main(int argc, char* argv[])
{
int i;
double Vec[arrsize];
for (i = 0; i < arrsize; ++i)
{
Vec = i;

}
return 0;
}

вот ошибки (если убрать arrsize или из массива или из цикла их соответственно меньше):

Compiling...
test.c
C:\Program Files\Microsoft Visual Studio\MyProjects\test\test.c(9) : error C2143: syntax error : missing ']' before ';'
C:\Program Files\Microsoft Visual Studio\MyProjects\test\test.c(9) : error C2143: syntax error : missing ';' before ']'
C:\Program Files\Microsoft Visual Studio\MyProjects\test\test.c(10) : error C2143: syntax error : missing ')' before ';'
C:\Program Files\Microsoft Visual Studio\MyProjects\test\test.c(10) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio\MyProjects\test\test.c(11) : error C2143: syntax error : missing ';' before '{'
Error executing cl.exe.

test.obj - 5 error(s), 0 warning(s)

Кто-нибудь знает в чем проблема?
3
28 августа 2006 года
Green
4.8K / / 20.01.2000
Но ведь компилятор тебе все подробно рассказал.
Учись читать сообщения об ошибках.
Ещё почитай что-нибудь по С/С++ для начинающих, конкретно, про макросы.

#define arrsize 10; - здесь точка с запятой не нужна.

А вообще, в подобных случаях лучше использовать константы, а не макросы.
1.9K
28 августа 2006 года
[*]Frosty
278 / / 17.06.2006
В данном случае все ошибки наведенные одной
(
2 Green: О которой компилятор молчит)
):
- ипользованна точа с запятой после дерективы препроцессора;
И наведение результат работы препроцессора, который ничего не знаеть о синтаксисе С => если есть возможность избегай использования препроцессора, т.е. в данном случае лучше определить констану -
 
Код:
const int arrsize = 10;

p/s/ Константы лучше выделять прописными(чтобы видно было константа) так:
 
Код:
const int ARRSIZE = 10;
3
28 августа 2006 года
Green
4.8K / / 20.01.2000
[QUOTE='
  • Frosty']
    2 Green: О которой компилятор молчит)
    [/QUOTE]
    [QUOTE='Green']
    Учись читать сообщения об ошибках.
    [/QUOTE]
    Ок, заменяю "читать" на "анализировать":
    Учись анализировать сообщения об ошибках.
  • 19K
    29 августа 2006 года
    t01
    4 / / 27.08.2006
    Спасибо всем за ответы! :)
    ...по тому что написал компилятор сложно было как-то логически понять в чём ошибка :)
    Мне программу надо на чистом С написать без использования С++, а в С вроде бы константу только через #define можно определить, насколько я знаю (не ошибаюсь ? :))
    1.9K
    29 августа 2006 года
    [*]Frosty
    278 / / 17.06.2006
    Чистый С - С совместимый с С++, ты имеешь в виду наверное Стандартный С, а в нем уже в стандарте С89 было введено ключевое слово const .
    Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
    Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог