我在C中做了一個簡單的變量參數列表函數,但它不起作用。當我用一個參數調用該函數,然後在該函數內檢查該參數時,該參數將失去其價值。 例如在下面的代碼中,當我檢查「格式」的值時,它始終保持爲NULL .i.e。它始終顯示「格式爲NULL」。在調試消息中。 請指導我,這個原因有什麼可能性。進行變量參數列表功能
Calling the function: lcdPrintf("Change");
int lcdPrintf(char * format, ...)
{
if (*format) {
printf("format is not NULL.\r\n");
}
else {
printf("format is NULL.\r\n");
}
return -1;
}
Works [here](http://codepad.org/IvvD62Zl)like魅力;這絕對是更多的。 – raina77ow
你應該檢查格式,而不是格式。無論如何,我不知道它是如何告訴你「格式爲NULL」。除非你用lcdPrintf(「」)來調用它? – LSerni
謝謝大家的回覆。代碼絕對正確。正如我正在研究瑞薩RX63N微控制器,我認爲,堆棧可能會被填滿。或者可變參數保存的內存可能會被填充。但我不確定,這個變量參數保存在哪裏。我該如何檢查內存是否充滿!請指導我如何跟蹤這個內存問題。用於stdarg.h的 – user977601