- 461 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 23:51:07 ]
- int add(int a, int b, int *p_is_overflow){
int chk_type, result, is_over_flow=0; chk_type=(a<0)*2+(b<0); result=a+b; switch(chk_type){ case 0: if(result>0) is_over_flow=1; break; // a, b ともに 0 以上なので解も 0 以上になるべき case 3: if(result<0) is_over_flow=1; break; // a, b ともに 0 未満なので解も 0 未満になるべき } if(p_is_over_flow) *p_is_over_flow=is_over_flow; return result; }
|

|