Mazur (21.09.2013 23:35 - 23:39, просмотров: 87) ответил Bill на можно
По моему не то. Смотрите, пусть на примере этого:
struct tab_key_curr_next_func __flash table_handlers_keys [] =
{
{KEY_ESC_COD, PROC_MENU_2, PROC_MENU_2, led_1_switch},
{KEY_ENTER_COD, PROC_MENU_2, PROC_MENU_2, led_2_switch},
{KEY_UP_COD, PROC_MENU_2, PROC_MENU_2, led_3_switch},
{KEY_DOWN_COD, PROC_MENU_2, PROC_MENU_2, led_4_switch},
{KEY_PLUS_COD, PROC_MENU_2, PROC_MENU_2, led_5_switch},
{KEY_MINUS_COD, PROC_MENU_2, PROC_MENU_2, led_6_switch},
{0xFF},
};
Если мы откомпилиуем, 0xFF займет 5 байтов( + 1 байт 0x00, если кол-во элементов с нечетным кол-вом байтов нечетное). То есть размер элемента. А этот размер может быть и 50, 100 байтов. Как мне сделать, чтобы признак конца таблицы занял 2 байта (ну и нуль, если кол-во байтов в таблице нечетное, но так как ноль за таблицей, то и хрен с ним. Это особенность 2 байтовой адресации памяти программ)?