cポインタによる演算結果の表現
2315 ワード
Java
またはPython
において、関数/メソッドが予想される結果が得られない場合、プログラムは予想される結果を得ることができないことを、異常な方法で呼び出し者に通知することができる.C
では、このような方法で呼び出し者に知らせることはできない.一般的には、計算に失敗したことを不可能な値を返すことで知らせることができます.ただし、特殊な場合、たとえば、どの結果も予想値である可能性があります.この場合、呼び出し関数に異常があることを戻り値で通知することはできません.では、この時どうすればいいのでしょうか.C
がこのような状況に遭遇したら処理できないのだろうか.また、C
は、ポインタによって相を変えて結果を返す特殊な方法がある.関数の戻り値は、関数の計算が成功/失敗したことを示します.#include
int main(void){
int a =9;
int b = 2;
int c;
int ret = divider(a,b,&c);
if (ret){
printf(" %d/%d = %d
",a,b,c);
}else{
printf("%d/%d ==> 0, ",a,b);
}
return 0;
}
/**
* @return 0 , ; 1,
*/
int divider(int a,int b,int *result){
int ret;
if(b==0){
ret=0;
}else{
*result = a/b;
ret = 1;
}
return ret;
}
console log:
9/0 ==> 0,
9/2 = 4