Hoje Alan Cox corrigiu um erro que para muitas pessoas poderia passar despercebido:
http://permalink.gmane.org/gmane.linux.drivers.video-input-infrastructure/51272
Resolvi testar e inicialmente apenas declarei a variável mac e mandei exibir o tamanho, como esperado retornou 6. Então resolvi criar uma função e passar o vetor mac[6] como no arquivo az6007.c.
Para minha surpresa ele retornou 4. Portanto durante a compilação o vetor é convertido em ponteiro, para evitar a passagem por cópia.
#include<stdio.h>
void calcsize(unsigned char mac[6])
{
printf("Size of mac is %d\n", sizeof(mac));
}
int main (void)
{
unsigned char mymac[6];
mymac[0] = 0x56;
mymac[1] = 0xff;
mymac[2] = 0xf0;
mymac[3] = 0x1b;
mymac[4] = 0x97;
mymac[5] = 0xbf;
printf("Size of mymac is %d\n", sizeof(mymac));
calcsize(mymac);
return 0;
}