我在程序里设置了打印信息:
int main(int argc, char** argv)
{
struct eeprom e;
int op;
op = 0;
printf("\n#########1################\n");
usage_if(argc != 2 || argv[1][0] != '-' || argv[1][2] != '\0');
printf("\n########555############\n");
op = argv[1][1];
printf("\n########666############\n");
fprintf(stderr, "Open /dev/i2c/0 with 8bit mode\n");
die_if(eeprom_open("/dev/i2c/0", 0x50, EEPROM_TYPE_8BIT_ADDR, &e) < 0,
"unable to open eeprom device file "
"(check that the file exists and that it's readable)");
只打印出了:
#########1################
I2C-24C08(256 bytes) Read/Write Program, ONLY FOR TEST!
FriendlyARM Computer Tech. 2009
[line 84]
也就是说程序出错在 :
usage_if(argc != 2 || argv[1][0] != '-' || argv[1][2] != '\0');
里。
而这个函数的定义为:
#define usage_if(a) do { do_usage_if( a , __LINE__); } while(0);
void do_usage_if(int b, int line)
{
const static char *eeprog_usage =
"I2C-24C08(256 bytes) Read/Write Program, ONLY FOR TEST!\n"
"FriendlyARM Computer Tech. 2009\n";
if(!b)
return;
fprintf(stderr, "%s\n[line %d]\n", eeprog_usage, line);
exit(1);
}
所以打印出了line 84
这个问题究竟是什么原因造成的?怎么解决?
