推 UNARYvvv:那就 #include <ieeefp.h> 試試看?? 61.70.137.117 07/29
> -------------------------------------------------------------------------- <
作者: khoguan (Khoguan Phuann) 看板: C_and_CPP
標題: Re: [問題] Error: The function "finite" must h …
時間: Fri Jul 29 12:59:13 2005
※ 引述《azurewind (鮮血的結末)》之銘言:
: : 解決之道呢?或者將 finite 改成 isfinite
: : 或者到 /usr/include/ 目錄下 grep finite * 看看有沒有什麼
: : 類似而可用的函式/巨集。像 MS VC 的話,則是以
: : _finite() 的方式提供,並收在 float.h (及 cfloat ) 中。
: 作業系統是 SOLARIS 8
: 改成ISFINTE似乎不行 INCLUDE了MATH.H也是
: gamma [usr/include]% grep finite *.*
: curses.h: /* <0: for infinite delay */
: ieeefp.h:extern int finite(double);
: 有找到以下的FINITE函式 那請問該如何修改呢?
那就是 ieeefp.h 中的 finite() 只要在程式前面加上
#include <ieeefp.h>
原先寫的 problem = (isnan(sum) || !finite(sum));
就不用改了。 <math.h> 一樣還是要 include 進來。
可以在命令列打 man finite 確認 ieeefp.h 中的 finite()
是否就是你要的。相信如果一開始你就這樣做,就不用來問人了 :-)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.208.168
※ 引述《azurewind (鮮血的結末)》之銘言:
: 使用CC編譯的時候出現的問題...
^^
請問這個 CC 究竟是哪套系統上的 C compiler 呢?
通常會取這種名字似乎是某種 Unix, 但這樣太籠統。
試著在命令列打 uname -a 然後請將結果貼上來。
: 那行敘述是如下:
: problem = (isnan(sum) || !finite(sum));
: 請問是發生什麼問題呢?
ANSI C 並未提供 finite() 這個函式/巨集,但在 BSD 系列的
Unix 或 GNU 系統中的 <math.h> 則包含了這兩個函式,檢查
看看你有沒有 #include <math.h> 如果有,還出現這種訊息,
就表示你的系統不提供這個在ANSI C 標準之外,因而缺乏可
移植性的函式。
解決之道呢?或者將 finite 改成 isfinite
或者到 /usr/include/ 目錄下 grep finite * 看看有沒有什麼
類似而可用的函式/巨集。像 MS VC 的話,則是以
_finite() 的方式提供,並收在 float.h (及 cfloat ) 中。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: khoguan 來自: 220.130.208.168 (07/29 11:22)
> -------------------------------------------------------------------------- <
作者: azurewind (鮮血的結末) 看板: C_and_CPP
標題: Re: [問題] Error: The function "finite" must h …
時間: Fri Jul 29 12:15:22 2005
※ 引述《khoguan (Khoguan Phuann)》之銘言:
: ※ 引述《azurewind (鮮血的結末)》之銘言:
: : 使用CC編譯的時候出現的問題...
: ^^
: 請問這個 CC 究竟是哪套系統上的 C compiler 呢?
: 通常會取這種名字似乎是某種 Unix, 但這樣太籠統。
: 試著在命令列打 uname -a 然後請將結果貼上來。
: : 那行敘述是如下:
: : problem = (isnan(sum) || !finite(sum));
: : 請問是發生什麼問題呢?
: ANSI C 並未提供 finite() 這個函式/巨集,但在 BSD 系列的
: Unix 或 GNU 系統中的 <math.h> 則包含了這兩個函式,檢查
: 看看你有沒有 #include <math.h> 如果有,還出現這種訊息,
: 就表示你的系統不提供這個在ANSI C 標準之外,因而缺乏可
: 移植性的函式。
: 解決之道呢?或者將 finite 改成 isfinite
: 或者到 /usr/include/ 目錄下 grep finite * 看看有沒有什麼
: 類似而可用的函式/巨集。像 MS VC 的話,則是以
: _finite() 的方式提供,並收在 float.h (及 cfloat ) 中。
作業系統是 SOLARIS 8
改成ISFINTE似乎不行 INCLUDE了MATH.H也是
gamma [usr/include]% grep finite *.*
curses.h: /* <0: for infinite delay */
ieeefp.h:extern int finite(double);
有找到以下的FINITE函式 那請問該如何修改呢?
另外這是錯誤訊息
"matrix.cc", line 212: Error: The function "isfinite" must have a prototype.
"matrix.cc", line 578: Error: The function "finite" must have a prototype.
"matrix.cc", line 790: Error: The function "finite" must have a prototype.
3 Error(s) detected.
*** Error code 3
--
╔╗
╔╝╚╗
╚╗╔╝
║║
神是我的力量,我的盾牌,我的劍。 ║║
╚╝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.25.118.40