乘法和加法的运算结果可能会溢出,需要做溢出检查。但很多时候我都没做这个检查。今天在看《python源码剖析》时,看到了2处代码有做这样的检查,所以记下来,提醒自己以后要做这样的检查。 加法运算 long x, a, b ; ...... x = a+b ; if ( (x^a)>0 || (x^b)>0 ) { //没溢出 } 乘法运算 nbytes = size * sizeof(PyObect*) ; if (nbytes / sizeof(PyObject*) != (size_t)size ) { //溢出 }