我的程序如下爲什麼下面的C程序無錯地編譯?
#include <stdio.h>
int getTriangle(num) {
if (num == 1) {
return num;
} else {
return num + getTriangle(num - 1);
}
}
int main()
{
int tri = getTriangle(7);
printf("%i\n", tri);
return 0;
}
我無意中在我的功能getTriangle沒有宣佈NUM的類型犯了一個錯誤。換句話說該行應爲:
int getTriangle(int num) {
然而,當我編譯
make euler012
cc euler012.c -o euler012
和運行
./euler012
28
一切似乎確定。這不應該在某處產生錯誤或警告嗎?