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