得到一個錯誤說
calculator.c:11:9: 警告:'num1' 的型別默認為 'int' [-Wimplicit-int] 11 | 整數加法(num1, num2)"
代碼仍然會運行,但想知道為什么會出現這種情況?
#include <stdio.h>
int main()
{
int num1;
int num2;
int addition(num1, num2)
{
return num1 num2;
}
int subtraction(num1, num2)
{
return num1-num2;
}
int multiply(num1, num2)
{
return num1*num2;
}
float devide(num1, num2)
{
return num1/num2;
}
printf("Still works");
}
uj5u.com熱心網友回復:
首先,不要把你的函式放在 main. 每個函式都應該是獨立的:
#include <stdio.h>
int addition(num1, num2) // Function BEFORE main, not inside main
{
return num1 num2;
}
int main()
{
int num1;
int num2;
....
}
其次,在宣告函式時,為每個引數指定一個型別:
int addition(int num1, int num2) // Declared each parameter as "int"
{
return num1 num2;
}
最后,為了代碼的長期可用性,名稱要一致和正確。
// You named the first two functions addition and subtraction
// so this one should be "multiplication", not "multiply"!
// A sudden change in naming convention means poor design!
int multiply(num1, num2)
// The proper spelling of the operation is "divide" or "division"
// You will make other programmers jobs extremely difficult
// if they cannot tell what function this is, because of a misspelling.
float devide(num1, num2)
將所有這些變化放在一起:
#include <stdio.h>
int addition(int num1, int num2)
{
return num1 num2;
}
int subtraction(int num1, int num2)
{
return num1-num2;
}
int multiplication(int num1, int num2)
{
return num1*num2;
}
float division(int num1, int num2)
{
return (float)num1/num2;
}
int main()
{
int num1;
int num2;
printf("Still works");
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/353297.html
標籤:C
