#include <stdio.h>
////////////////// Функции из массива Menu
void Menu1( void )
{
printf("I'm Menu1\n");
}
void Menu2( void )
{
printf("I'm Menu2\n");
}
// Сведем имена Menu в массив
const unsigned int __flash area_menu[] =
{
(unsigned int)Menu1,
(unsigned int)Menu2
};
////////////
////////////////// Функции из массива Tebyu
void Tebu1( void )
{
printf("I'm Tebu1\n");
}
void Tebu2( void )
{
printf("I'm Tebu2\n");
}
// Сведем имена Tebyu в массив
const unsigned int __flash area_tebyu[] =
{
(unsigned int)Tebu1,
(unsigned int)Tebu2
};
////////////////////
// Запускает функцию из полученного массива Addr_Area по индексу Ind
void fun1( unsigned int __flash* Addr_Area, unsigned char Ind )
{
((void (*)())(((unsigned int)
((unsigned int *)Addr_Area[ Ind ])))) ();
}
///////////////
void main( void )
{
unsigned int Address;
char Index;
// Mассив Menu, индекс 1
Index = 1;
Address = (unsigned int)area_menu; // даю наводку на Menu
fun1( (unsigned int __flash *)Address, Index);
// Mассив Menu, индекс 0
Index = 0;
fun1( (unsigned int __flash *)Address, Index);
// Mассив Tebyu, индекс 1
Index = 1;
Address = (unsigned int)area_tebyu; // даю наводку на Tebyu
fun1( (unsigned int __flash *)Address, Index);
// Mассив Tebyu, индекс 0
Index = 0;
fun1( (unsigned int __flash *)Address, Index);
}//main