OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5320|回复: 4

内存管理实验疑问

[复制链接]

24

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2012-10-20
在线时间
5 小时
发表于 2013-3-22 16:41:33 | 显示全部楼层 |阅读模式
   在看到第43章,内存管理。其中有个结构体不是很理解,
struct _m_mallco_dev
{
 void (*init)(u8);     //初始化
 u8 (*perused)(u8);          //内存使用率
 u8  *membase[2];     //内存池 管理2个区域的内存
 u16 *memmap[2];      //内存管理状态表
 u8  memrdy[2];       //内存管理是否就绪
};
 void (*init)(u8);     这个是init函数的指针嘛,但是后面加个(u8)是什么意思呢?
还有u8 (*perused)(u8); 指针变量perused,后面加了个(u8)

没见过C语言可以这样写.....望高手提醒下,谢谢。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-22 17:04:57 | 显示全部楼层
函数指针。那个括号里面的u8,表示有一个u8类型的参数。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

24

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2012-10-20
在线时间
5 小时
 楼主| 发表于 2013-4-5 20:26:53 | 显示全部楼层
void mymemset(void *s,u8 c,u32 count)  
{  
    u8 *xs = s;  
    while(count--)*xs++=c;  
}    
这个运算符++=是怎么算的啊,只看到过+=
回复 支持 反对

使用道具 举报

24

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2012-10-20
在线时间
5 小时
 楼主| 发表于 2013-4-6 14:48:41 | 显示全部楼层
void *mymalloc(u8 memx,u32 size)  
{  
    u32 offset;         
offset=mem_malloc(memx,size);          
    if(offset==0XFFFFFFFF)return NULL;  
    else return (void*)((u32)mallco_dev.membase[memx]+offset);  
}  

mallco_dev.membase[memx]+offset已经是一个地址了,为什么前面还要加(void*)啊?
麻烦指点下,谢谢了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-6 15:26:31 | 显示全部楼层
回复【3楼】leshak:
---------------------------------
这个运算自己百度。不解释。

回复【4楼】leshak:
---------------------------------
这是强制转换,以匹配未知类型的数据格式。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-22 02:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表