Kod: Markera allt
char *dataP;
...
dataP=(char*)data;
for (i = 0 ; i < antalBytesInStruct; i++) {
SPI_SendByte(*dataP++);
}
Kod: Markera allt
char *dataP;
...
dataP=(char*)data;
for (i = 0 ; i < antalBytesInStruct; i++) {
SPI_SendByte(*dataP++);
}
Men dataP=(char*)data; är ingen uträkning, bara lagring av ett värde, motsvarande att skriva adress=10;.jesse skrev:jag vill behålla startadressen till nästa överföring utan att behöva räkna ut den igen...
Kod: Markera allt
char *dataP;
...
dataP=(char*)data;
i=sizeof(dataformat);
while(i--)
{
SPI_SendByte(*dataP++);
}
Kod: Markera allt
struct datatyp readings = { 0,0,0,0,0xFF};
struct datatyp transmit = readings; // ERROR
Kod: Markera allt
transmit.summa = readings.summa;
transmit.antal = readings.antal;
transmit.status = readings.status;
transmit.crc = readings.crc;
Kod: Markera allt
do
{
SPI_SendByte(*dataP++);
}while(--i);
Det är naturligtvis helt subjektivt vad som är "bäst". Men skulle din slutsats gälla så skulle Linuxkärnan vara ganska full i blockfel eftersom den kräver måsvingarna på samma rad som while/for/if osv (endast funktioner har på egen rad).bearing skrev:Slutligen, undrar jag varför du (m.fl.) lägger blockstart ({) på samma rad som satsen. Detta försvårar att hitta starten på ett avslutat block i nästlade block, tycker jag (såvida inte editorn färgmarkerar sånt). Detta gör att blockfel blir frekventare, enligt min erfarenhet.
Kod: Markera allt
int
SPI_stop(void)
{
return 3;
}
int
main()
{
int i;
int (*fprt) (void); /* Deklaration av funktionspekare */
fptr = SPI_stop; /* Detta är OK, sätter funktionspekaren */
i = fptr(); /* Detta är OK , i blir tre */
i; /* Detta är OK men ger ingen effekt*/
fptr; /* Detta är OK men ger ingen effekt */
SPI_stop; /* Detta är OK men ger ingen effekt */
}