阁龙1427 发表于 2016-6-27 10:11:35

关于强制类型转换

本帖最后由 阁龙1427 于 2016-7-7 20:52 编辑

这是我在代码中看到的,感觉可以拿来分析一下,为何作者要用这种写法?
是不是多余的?从中你又看出了什么手法么?

((void (*)(void)) (void*)fun_name)();

前几天有个同学问我关于强制类型转换的另一个例子,在这里一通说了吧:

#define GEN_DATA_STRU_DATALEN(MEM_GEN_SIZE-3 * sizeof(void*))

typedef __packed struct {
void* Address;s
void* MemTypePtr;
void* AppPtr;
INT8U Data;
}GEN_DATA_STRU;

Temp=((GEN_DATA_STRU*)Ptr) ->Data;

这个就是把内存地址中的Ptr开始算起,后面的sizeof(GEN_DATA_STRU)个字节跟结构体里的一一对应

ELI_ 发表于 2016-7-1 23:20:11

新<。)#)))≦{:10_256:}看不懂

阁龙1427 发表于 2016-7-2 11:18:11

这个用法常见于 嵌入式实时操作系统当中, 跳转到固定地址中存放的一个函数

m9128213 发表于 2016-7-22 00:34:09

阁龙1427 发表于 2016-7-22 09:28:39

m9128213 发表于 2016-7-22 00:34
还是不了解~~

嵌入式的 哈哈
页: [1]
查看完整版本: 关于强制类型转换