我目前正在編寫一個函數,它將採用可變數目的參數。我將參數的數量傳遞給函數,然後遍歷參數列表。驗證變量參數是預期的類型
每個傳遞的參數都應該是一個整數。我將把這個整數加到後面將要使用的整數向量上。
我想確保一些小丑在未來不會試圖傳遞這個函數而不是其他整數。我知道我可以從va_arg中檢查當前參數以確保它不是NULL,並且我可以使用類似isanum(va_arg())的東西來確定它是否是有效整數。我想我甚至可以檢查sizeof(va_arg)並將其與sizeof(int)進行比較並確保它們相等。
是否有任何其他檢查,我可以運行驗證我已通過一個有效的整數?
在此先感謝您的幫助
您正在使用什麼編譯器? – Xeo
**真的很好**問題!+1 –
gcc可以對'printf'參數進行完整性檢查,我敢肯定有一種方法可以將這種行爲擴展到自定義函數。顯然,它是非常不便攜的,但如果你碰巧使用gcc,它可能是值得研究的。 –