请问一下,如下的宏定义该如何理解。 #define set(pDest,len,bit) (((UCHAR *)(pDest))[((len)-1)-(bit)/8] |= (UCHAR)(1UL<<((bit)%8)))这里,指针被强转为((UCHAR *)后,接上数组下标,是指这个是一个数组指针吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有点复杂啊,这里,指针被强转为((UCHAR *)后,接上数组下标,是指这个是一个数组指针吗?pDest被强制转换成UCHAR *指针后,通过数组下标来访问 否。这实际上相当于:SomeType *pDest; // 例如 void *pDest;UCHAR *puc = (UCHAR *)pDest;puc[len - 1 - bit/8] |= (UCHAR)(1UL<<(bit % 8)));这么写你就明白了吧? 这个宏的含义应该是:将pDest指向的缓冲区(长度为len个字节)的倒数(从最末尾开始往前数)第bit位置为1(设最末尾的一个字节的最低位为第0位)。 win32 SDK如何将饼形图化成圆呢? 问一个关于base64编码的问题 有劳大家看看CList的这样使用有什么隐患? 请问ado中access数据库中存放、提取jpg图片如何解决? DLL 的问题 为什么我的程序提示找不到mstcpip.h文件? 请教一个关于CToolBar的简单问题 如何使一段程序停止运行,并自动释放相应的堆栈? 查询数据库 静态指针变量开辟内存 从IDE中打开当前工程目录的快捷键是什么 为无LIB的DLL制作LIB函数符号输入库(提问)
这里,指针被强转为((UCHAR *)后,接上数组下标,是指这个是一个数组指针吗?
pDest被强制转换成UCHAR *指针后,通过数组下标来访问
UCHAR *puc = (UCHAR *)pDest;
puc[len - 1 - bit/8] |= (UCHAR)(1UL<<(bit % 8)));这么写你就明白了吧?