首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于函数指针调用的有关问题

2013-06-26 
关于函数指针调用的问题const unsigned char FlashInit_C[] {0x1B, 0x99, 0x3B, 0x18, 0x69, 0x82, 0xB7

关于函数指针调用的问题


const unsigned char FlashInit_C[] = 
{0x1B, 0x99, 0x3B, 0x18, 0x69, 0x82, 0xB7, 0x45, 0xED, 0x02, 0x19, 0xEA, 0x01, 0x06, 0xCC, 0x03, 0x30, 0x6B, 0x40, 0xED, 0x02, 0x19, 0xEA, 0x01, 0x07, 0x6A, 0x40, 0xE6, 0x08, 0x26, 0x0B, 0xED, 0x02, 0x19, 0xEA, 0x01, 0x04, 0x0D, 0x40, 0x10, 0x20, 0x09, 0xED, 0x02, 0x19, 0xEA.......};

#define CONV_FAR_DATA_TO_FUN_PTR(to, from)\
  *(UINT16*)&to = *(UINT16*)((unsigned char*)&from+1);\
  *((unsigned char*)&to+2) = *(unsigned char*)&from;

typedef UINT16 (* _far pFLASHINIT)(FLASH_SSD_CONFIG *_near PSSDConfig);
pFLASHINIT       pFlashInit,ppFlashInit;
pFlashInit = (pFLASHINIT) FlashInit_C;
CONV_FAR_DATA_TO_FUN_PTR(ppFlashInit,pFlashInit);


这是飞思卡尔官网下的的flash驱动程序,小弟是新手实在看不懂,请高手解释一下,尤其是那个宏定义


指针 C 函数指针
[解决办法]
编译选项加/EP /P,重新编译,查看宏展开后对应的.i文件。gcc加-E

[解决办法]
数组的内容应该是一段机器码,可能有点小加密,就是把第三字节的数据放在了第一字节,所以需要那个宏来解密。

热点排行
Bad Request.