
14 Feb
2007
14 Feb
'07
8:52 p.m.
Looks like your code boils down to:
if ((rc = read_dataflash(addr, (linebytes/size)*size, linebuf)) == DATAFLASH_OK){ print_buffer(addr, linebuf, size, linebytes/size, DISP_LINE_LEN/size); } else { /* addr does not correspond to DataFlash */ print_buffer(addr, (void*)addr, size, linebytes/size, DISP_LINE_LEN/size); }
Would it not generate less (better) code if you do something like:
rc = read_dataflash(addr, (linebytes/size)*size, linebuf); p = (rc == DATAFLASH_OK)? linebuf : (void*)addr; /* or an if statement */ print_buffer(addr, p, size, linebytes/size,DISP_LINE_LEN/size);
Best Regards Ulf Samuelsson