精華區beta EE_DSnP 關於我們 聯絡資訊
請問一在calcCmd.cpp的MvarCmd::exec(const string& option)裡面 這裡是老師已經寫好的code,其中有一行是 CmdExec::lexOptions(option, options, 2); 是不是應該要改成 if(!CmdExec::lexOptions(option, options, 2))....類似這樣 若是沒有改的話,當我執行modCalc時 mcalc> mvar a Missing option!! 然後會顯示記憶體區段錯誤並且跳出... 但如果我把這行改成: if(!CmdExec::lexOptions(option, options, 2)) return CMD_EXEC_DONE; 結果就正常了... 另外一個問題是在calcModNum.cpp中 我將_modulus initialize成 int ModNum::_modulus=UINT_MAX; 照理來說UINT_MAX是個很大的整數 可是當我在下面的member function中用到_modulus的時候 _modulus並不是UINT_MAX而是-1, 例如說當我寫n._num=n._num%_modulus; 在某個function中 他的動作是把n._num=0(假設_modulus還沒有被設定新的值) 請問是為什麼阿? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.244.241
davidlue:既然是int,assign給他unsigned int的MAX一定會爆表的呀 11/18 18:13
will1220:原來UINT_MAX是這個意思啊...所以要改成INT_MAX囉~ 11/18 18:35