0
当* customer_num为NULL时,下列宏会导致段错误传递。使用类似函数的宏来检查是否定义了变量
#define SAVE(a,b,c) if(a){stchar(a,b,c);}
在宏中有一种方法,我可以检查是否定义了一个,如果不是,那么只需使用NULL。 宏如果我只是使用NULL,如下所示。
SAVE(NULL,buf,16);
1)save_cust(NULL);
2)save_cust(char **customer_number,..etc);
3)SAVE(*customer_number,buf,16); //causes seg fault since it *customer_number is undefined
你是什么意思的“定义”? – Medinoc 2014-09-12 19:35:54
如果你没有声明**你正在尝试使用的变量,你的编译器会吐出一个错误。你所做的只有在'a!= 0'时才会生效。这是你所说的“定义”的意思吗? – DevNull 2014-09-12 19:38:29
按定义我的意思是它是NULL。如果customer_number为NULL,那么* customer_number也不应该为NULL? – caaruiz 2014-09-12 19:53:39