Trích:
Nguyên văn bởi HSIC
[code]
void dich_phai()
{
int8 i;
for(i=0;i<8;i++)
{
shift_right(buffer[i*2],1,0);// i nhân 2 byte ơ vị trí đầu tiên
shift_right(buffer[i*2+1],1,0);
}
}
|
Về cú pháp code này chắc chắn chạy sai vì tham số đầu tiên truyền cho hàm shift_right() phải là một con trỏ
shift_right(&buffer[i*2],1,0);
Về giải thuật theo như tôi hiều, bạn muốn dịch các bit từ mảng ra IO chẳng hạn, nếu đúng như vậy thì như trên là sai vì hàm shift_right() dịch bit vào trong biến.
VD:
char a=255;
shift_right(&a, 1, 0); //a = 254
shift_right(&a, 1, 0); //a = 252
shift_right(&a, 1, 0); //a = 248
Bạn nên coi lại help