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

 
 
> Вопрос по размеру массива
Vladimir_T
сообщение Mar 17 2009, 16:53
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 517
Регистрация: 7-02-06
Пользователь №: 14 073



Здравствуйте, уважаемые коллеги, помогите пожалуйста. В функции мне нужно знать количество элементов массива, делаю это с помощью макроса SizeObj, а он в данной функции не работает. Компилятор - Кейл. Можно было бы передавать размер массива в саму функцию, но это не то. Вызывается эта функция часто и для массивов разной длины, потому хотелось лаконичнее, да еще бы с передачей в функцию указателя на массив, но по указателю на массив я не могу определить размер. Как бы решить эту задачку.

Код
typedef struct
{
  int X;
  int Y;
  char  dX;
  char  dY;
} TG_Buttons;

TG_Buttons G_But [] = {
                              Bt_Menu_X, Bt_Menu_Y, Bt_Menu_L, Bt_Menu_H,
                              Bt_Prn_X, Bt_Prn_Y, Bt_Prn_L, Bt_Prn_H,
                              Bt_Rec_X, Bt_Rec_Y, Bt_Rec_L, Bt_Rec_H
                          
                       };


#define     SizeObj(a) (sizeof(a) / sizeof(a[0]))

void Set_Arr_But (TG_Buttons G_Bt [])
{ INT16U i;
  TG_Buttons *pG_But = &G_Bt [0];
  float k_Y;
      
   k_Y = (float)Max_TSC_Y / LCD_YSIZE;  

for (i=0; i < SizeObj(G_Bt); i++)
  {
    pG_But->Y = ceil ((pG_But->Y + pG_But->dY/2) * k_Y);             //
    pG_But ++;
  }
} // Set_Arr_Buttons (void)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Vladimir_T   Вопрос по размеру массива   Mar 17 2009, 16:53
- - sergeeff   При передаче указателя на массив в функцию информа...   Mar 17 2009, 17:18
- - Qwertty   Передавайте размер. sizeof не функция, а скорее ма...   Mar 17 2009, 17:34
- - meister   Цитата(Vladimir_T @ Mar 17 2009, 20:53) К...   Mar 17 2009, 18:44
- - sergeeff   Результат компиляции в Visual Studio 6.0 ЦитатаC:...   Mar 17 2009, 19:50
|- - meister   Цитата(sergeeff @ Mar 17 2009, 23:50) Рез...   Mar 17 2009, 19:54
- - sergeeff   Да, действительно, в VS2008 - без проблем. Изящно...   Mar 17 2009, 20:38
|- - ar__systems   Цитата(sergeeff @ Mar 17 2009, 15:38) Да,...   Mar 18 2009, 02:07
- - VAI   Добавьте в "TG_Buttons G_But []" признак...   Mar 18 2009, 04:50
- - zhevak   Цитата(Vladimir_T @ Mar 17 2009, 21:53) М...   Mar 18 2009, 05:14
|- - Сергей Борщ   Цитата(zhevak @ Mar 18 2009, 07:14) Если ...   Mar 18 2009, 08:49
|- - _Pasha   Цитата(zhevak @ Mar 18 2009, 08:14) Самое...   Mar 18 2009, 08:50
|- - ar__systems   Цитата(zhevak @ Mar 18 2009, 00:14) Делай...   Mar 18 2009, 11:39
|- - zhevak   Цитата(ar__systems @ Mar 18 2009, 16:39) ...   Mar 18 2009, 15:37
|- - _Pasha   Цитата(ar__systems @ Mar 18 2009, 15:39) ...   Mar 18 2009, 15:48
||- - ar__systems   Цитата(_Pasha @ Mar 18 2009, 10:48) Зато ...   Mar 18 2009, 17:11
||- - _Pasha   Цитата(ar__systems @ Mar 18 2009, 21:11) ...   Mar 18 2009, 17:20
|- - Vladimir_T   Цитата(ar__systems @ Mar 18 2009, 14:39) ...   Mar 18 2009, 16:39
- - richie   +1, zhevak. Сказал, то что я не мог сказать с утра...   Mar 18 2009, 08:34
|- - zhevak   Цитата(richie @ Mar 18 2009, 13:34) Поэто...   Mar 18 2009, 09:40
- - Vladimir_T   Спасибо всем за дельные советы. Понял, что в прост...   Mar 18 2009, 14:24


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

 


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


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