Re: [問題] 函式傳不回計算後的值
: Common.c:
: #include <math.h>
: float Common_GetNorm(float* var, unsigned int n) {
: int i;
: double sum = 0.f;
: for (i=0; i<n; ++i) {
: sum += var[i]*var[i];
: }
: return sqrtf(sum);
: }
: main.c:
: #include <stdio.h>
: int main(void) {
: float acc[3];
: acc[0] = 0.01;
: acc[1] = 0.01;
: acc[2] = 1.01;
: float a = Common_GetNorm(acc, 3);
: printf("%f\n", a);
: }
關鍵是在於 main.c 裡面沒有宣告 Common_GetNorm 這個函式就使用了。
所以 Common_GetNorm 在編譯 main.c 的時候會被當作是回傳 int 型別的函式
從 main 的角度他得到的是個 int,但是實際上他得到的是個 float
接著就要看你使用的平台中,用 int 型別去解釋 float 值的結果
你只要在 main 前加上 Common_GetNorm 的宣告就可以了。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.122.83.198
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1441978711.A.4CB.html
推
09/11 22:04, , 1F
09/11 22:04, 1F
推
09/12 22:09, , 2F
09/12 22:09, 2F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章