struct BytesEjemplo
{
int8 byte1;
int8 byte2;
int1 Flag1;
} Ejemplo;
...
void EscribeStruct(BytesEjemplo *estru, int8 b1, int8 b2, int1 f)
{
estru->byte1=b1;
estru->byte2=b2;
estru->Flag1=f;
}
//Y se llamaría así
EscribeStruct( &Ejemplo, 0x22, 0x34, true);
jgpeiro: Fue lo primero que intente pero el compilador marca error de sintaxis -CCS tiene sus cosas-
Saludos
Lo que sugiere Jgpeiro no se puede hacer.Oye, que si se puede hacer!! Bueno, no exacatamente como indicaba en mi post anterior, pero que si se puede asignar el valor a todos los miembros de la estructura en cualquier punto del programa, por lo menos con el MPLAB C30.
Lo único que hay que hacer es el casting"(struct BytesEjemplo)" para que el compilador sepa de que tipo son los datos.Código: C
struct BytesEjemplo { int byte1; int byte2; int Flag1; }; //... struct BytesEjemplo strct1 = {1,2,3}; //... strct1 = (struct BytesEjemplo){4,5,6}; //...
El CC$ no deja .... marca error. ... Lastima
No dejo hacer el casting:Que error te da exactamente el compilador?
*** Error 51 "MdlLocal.c" Line 253(26,27): A numeric expression must appear here
*** Error 76 "MdlLocal.c" Line 253(38,39): Expect ;
2 Errors, 0 Warnings.
Halting build on first failure as requested.
struct BytesEjemplo{
int8 byte1;
int8 byte2;
int1 Flag1;
};
int8 main(){
int8 i, j;
int1 k;
struct BytesEjemplo strct1 = {1,2,3};
for( i = 0 ; i < 4 ; i++ ){
for( j = 0 ; j < 4 ; j++ ){
for( k = 0 ; k < 1 ; k++ ){
strct1 = (struct BytesEjemplo) { i, j, k};
}
}
}
return 0;
}