我別無選擇,從那以後糾正,類似下面的代碼:是否存在用於隱含返回值的GCC擴展?
class SomeClass {
public:
static int AdjustValue(float input);
static int DoSomethingWithAdjustedValue(int adjustedInput);
static int DoSomethingWithNormalValue(float input) {
DoSomethingWithAdjustedValue(AdjustValue(input);}
};
所以DoSomethingWithNormalValue
顯然缺少一個return
,但GCC沒有產生錯誤或警告;我撥打DoSomethingWithNormalValue
的地方獲得了正確的返回碼。我能想到的兩種解釋此:
有在GCC一些擴展,承認包裝是其他內聯函數的功能和一起傳遞的返回值。
由於未定義行爲的幸運/不幸表現與GCC中的錯誤相結合導致返回代碼被傳遞,從而避免了任何錯誤或警告。
這些都沒有可能。這裏發生了什麼?
提高警戒級別。它會警告你。 –
什麼是「錯誤返回代碼」? –
@Blagovest我假設爲0. –