我做了一個struct Triangle,我做了一個函式來計算p(perimeter/2)。當我呼叫里面的函式時,printf它可以作業。但是當我呼叫與簡單算術陳述句相同的函式時,它不起作用并給我以下錯誤
called object 'p' is not a function or function pointer
源代碼:
#include <stdlib.h>
typedef struct{
int a, b, c;
} Triangle;
int perimeter (Triangle t){
return t.a t.b t.c;
}
float p (Triangle t){
return perimeter(t) / 2.0;
}
int main() {
Triangle t = {3, 4, 5};
//float p = p(t);
printf("p = %.2f\n",p(t));
return 0;
}
uj5u.com熱心網友回復:
//float p = p(t);
函式和變數不能使用相同的名稱。改變你float p的float a,它應該作業。或者將您的函式重命名為,perimeter而不是只是p.
同樣,一般來說,最好為函式使用稍長、清晰和描述性的名稱。
uj5u.com熱心網友回復:
線
float p = p(t);
p定義了一個隱藏全域函式的區域變數p。這個變數的型別是float,所以它不是函式或指標。
重命名變數以解決此問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/467392.html
上一篇:如何在javascript中使用承諾?Javascript中的基本Promise
下一篇:如何獲得總數?
