說我有類似下面的那些一兩個功能:有編譯申報與定位調試指針變量
unsigned char PlusTwo(unsigned char value)
{
return (value + 2);
}
unsigned char PlusTwoUsingPtr(unsigned char *value)
{
return (*value + 2);
}
如果我想測試的第一功能,而我開發的,沒有問題,我不得不是這樣的:
PlusTwo(8);
編譯器會自動爲我在內存中的某個地方放置一個常量。但是,爲了測試第二個函數,它變得更加複雜。首先,我必須聲明變量,然後傳遞函數的變量的地址:
unsigned char eight = 8;
PlusTwoUsingPtr(&eight);
這不是可怕耗時的,但它是惱人的(特別是在C89/ANSI功能塊的其中variables have to be declared at the beginning) 。有沒有一些技巧可以讓我只用一行代碼來測試這個函數,讓編譯器聲明&在某個地方給我指向一個常量?
指向隱式創建的指針不會將其剪切。根據其簽名,「PlusTwoUsingPtr」寫入「* value」是完全合理的(即使沒有強制轉換和UB等)。 – delnan