Code:
unsigned char hallo[8],i,stelle=0,a=0;
for(i=0;i<8;i++)hallo[i]=0;
for(i=0;i<10;i++){
((long*)(*hallo[0]))* |= (a<<stelle++);
a=1;
}
printf("hallo= %x%x\n",hallo[1],hallo[0]);
Das meine ich
Aber wie gesagt, die Pointersemantik von C ist mir nicht ganz geläufig... Wenn du allerdings (bur) n 1-Bits und ein 0-Bits willst, wäre (1 << (n + 1)) ^ 1 vielleicht die bessere Alternative.