4583|4

60

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

如何 确定 VOID* 类参数的字节数? [复制链接]

为了通用性,函数声明时,参数用了 void * 类型,但在参数合法性检查时,需要知道此参数的位数,请问有什么办法?

最新回复

gggggggggggggggg  详情 回复 发表于 2011-6-20 15:34
点赞 关注

回复
举报

60

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
举例:
要对变量的某位置位,函数声明如下:
void SetBit(void*p, char BitNum);
在做参数合法性检查时,需要确定*p的位长,有没有什么办法?
 
 

回复

350

帖子

0

TA的资源

纯净的硅(中级)

板凳
 
void* 是一个广义指针类型,具体用法是一般的指针类型可以转化为void* 这个是合法的,但是void*转化为其它特定的指针类型就不对。关于合法性,就想在外部定义变量一样你没用就没有你定义就真实的存在的。所以你的指针传给了void* 指针的类型就变成穿过来的那个了。详细参考网络上的void*用法。
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

4
 
gggggggggggggggg
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(高级)

5
 

原帖由 jiangliteng 于 2011-6-19 00:18 发表 举例:要对变量的某位置位,函数声明如下: void SetBit(void*p, char BitNum); 在做参数合法性检查时,需要确定*p的位长,有没有什么办法?

 

我再说的 具体点,如何防止 出现这样的调用SetBit(char *a, 10);

*a 是char 类型的,这个数只有8位,但传到函数的 “置位”位是 第10位,是错误的参数!

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表