c语言 三个函数什么意义?
发布网友
发布时间:2023-02-15 15:35
我来回答
共1个回答
热心网友
时间:2023-09-14 21:55
#include<stdio.h>
#define BYTE_OFFSET(plbit,plsize) (((plsize)-1)-(((plbit)-1)/(8)))
//这是宏 小括号里的是两个参数
#define BIT_OFFSET(plbit,plsize) (((plbit)-1)%8)
//第二个参数是多余的吧
#define BIT_MASK(plbit,plsize) (0x01<<(((plbit)-1)%8))
//第二个多余哦;
int main(void)
{
int a, b;
scanf("%d%d", &a, &b);
printf("1--%d\n1--%d\n1--%d", BYTE_OFFSET(a,b), BYTE_OFFSET(a,b), BYTE_OFFSET(a,b));
printf("\n2--%d\n2--%d\n2--%d", BYTE_OFFSET(a,b), BYTE_OFFSET(a,0), BYTE_OFFSET(a,0));
return 0;
}
追问是做偏移位运算吗
追答这个是左移 #define BIT_MASK(plbit,plsize) (0x01<<(((plbit)-1)%8))