[問題] / 及 % 運算在不同機器上有不同定義??

看板C_and_CPP作者 (JON)時間13年前 (2010/09/08 12:51), 編輯推噓1(109)
留言10則, 4人參與, 最新討論串1/1
#define abx(x) ((x) < 0 ? -(x) : (x)) .... void itoa(int n, char s[]) { void reverse(char s[]); int i, sign; sign = n; i = 0; do{ s[i++] = abx(n%10) + '0'; }while((n /= 10) != 0); if(sign < 0) s[i++] = '-'; s[i] = '\0'; reverse(s); } 當 n < 0 時, / 及 % 運算在不同機器上是否有不同定義?? 如果要改寫為與機器無關的正確版本 是要定義型別,還是有其他的辦法?? -- 吳敦義上午在參加警察大學校慶活動,被問到有人認為他失言乙事,他指出,在景氣寒冬 中想到無薪假的構想,不僅連結勞工情感與道義,而且在寒冬過後,勞工也都一一回到工 作崗位。 他說,「大家風趣與幽默要有嘛!」最後還嘆了口氣說「老天啊!」 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.219.228.160

09/08 15:01, , 1F
記得是這樣沒錯 要改寫的話自己算數學吧
09/08 15:01, 1F

09/08 15:16, , 2F
/或%的operand中有負數的話就會是implementation-defined
09/08 15:16, 2F

09/08 15:16, , 3F
說錯 %
09/08 15:16, 3F

09/08 15:25, , 4F
一律用正數去做 : http://codepad.org/EJUCp0PN
09/08 15:25, 4F

09/08 15:48, , 5F
寫程式bot又出現了...每次都附上程式碼- -!
09/08 15:48, 5F

09/08 15:51, , 6F
= ="
09/08 15:51, 6F

09/08 16:46, , 7F
順帶一題, _Bool 類型在C99才有, 請加上<stdbool.h>
09/08 16:46, 7F

09/08 16:57, , 8F
_Bool 在gcc是內建型別, 引入<stdbool.h> 是為了bool
09/08 16:57, 8F

09/08 16:57, , 9F
等巨集
09/08 16:57, 9F

09/08 17:03, , 10F
嗯 我記得include stdbool.h是為了bool,true,false這些
09/08 17:03, 10F
文章代碼(AID): #1CXnOqBl (C_and_CPP)