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

 
 
> Объявление массива без указания размера, и sizeof()
toweroff
сообщение Feb 21 2014, 13:20
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Добрый день!
Что-то не соображу...
Есть массив, находится во флеш. Реально здоровый, количество элементов считать руками ну просто лень.
Объявлен (соответственно, в хидере и в с-файле) так
Код
extern const unsigned char my_array[];

const unsigned char my_array[] = { /* здесь через запятую элементы массива */ };


при обращении к массиву никаких проблем, но вызов sizeof(my_array) вводит компилятор в ступор:
Код
test\test.c(41): error:  #70: incomplete type is not allowed


в чем проблема?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SM
сообщение Feb 21 2014, 13:43
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



сделайте в том же файле, где он определен, еще и константу, int arr_size = ARRAY_SIZE(array); и ее тоже как extern потом берите. (про кейл не знаю, это методом тыка, сработает или нет, возможно, это расширение gnu, не уверен, что стандарт) По крайней мере в линуксе такое налево и направо практикуется:

Код
static struct v4l2_input tvp5146_inputs[] = {
    {
        .index    = 0,
        .name    = "Composite",
        .type    = V4L2_INPUT_TYPE_CAMERA,
        .std    = TVP514X_STD_ALL,
    },
    {
        .index    = 1,
        .name    = "S-Video",
        .type    = V4L2_INPUT_TYPE_CAMERA,
        .std    = TVP514X_STD_ALL,
    },
};

static struct vpfe_subdev_info vpfe_sub_devs[] = {
    {
        .name        = "tvp5146",
        .grp_id        = 0,
        .num_inputs    = ARRAY_SIZE(tvp5146_inputs),


главное, в одном файле чтобы это было - и инициализация, и ARRAY_SIZE
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 01:39
Рейтинг@Mail.ru


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