Devo definire un tipo di dati a 24 bit. Sto usando char[3]
per rappresentare il tipo. Posso char[3]
scrivere a type24
? L'ho provato in un esempio di codice. Ho inserito il typedef char[3] type24;
mio file di intestazione. Il compilatore non si è lamentato. Ma quando ho definito una funzione void foo(type24 val) {}
nel mio file C, mi sono lamentato. Vorrei poter definire funzioni come type24_to_int32(type24 val)
invece di type24_to_int32(char value[3])
.
type24 foo
, quali sarebbero le dimensioni, tipi, e significati difoo
,*foo
,**foo
,&foo
, e&&foo
? I significati e la legalità di tali espressioni sono cambiati nel corso degli anni?