回復 10 #KinChungE

仲有 operator overload   

via HKEPC Reader for Android

TOP

其實可以冇得simplify

C++

void *iX, *iY;
.....
if (iX == 0) {
    return iY;
} else {
    ret ...
KinChungE 發表於 2016-4-20 11:43


唔識C++, 願聞其詳
係因為0+iY會出事?

TOP

我建議咁講 "Simplify the programming logic"

Just like doing Math.

via HKEPC Ionic Reader v ...
hihihi123hk 發表於 2016-4-20 11:26


試完, 都係唔得~
等我supervisor自己教返算

話說佢用左一個鐘教一條formula, 而且係Basic data type conversion...
呢堂可能仲貴過出去take個course

TOP

雖然唔係新手
有D logic都會唔知點寫可以快D

想出(-1)^n (n係正整數)
用(n % 2 ? -1 : 1)快
定n % 2 * -2 + 1快?

TOP

雖然唔係新手
有D logic都會唔知點寫可以快D

想出(-1)^n (n係正整數)
用(n % 2 ? -1 : 1)快
定n % 2 * -2  ...
EITCo 發表於 2016-4-20 13:20


呢個我答唔到你
而且通常睇compiler決定, 但多數分別不大
我自己偏好容易睇概code去做野
如果唔係差太遠, 我情願寫多幾行code去做

正等於我叫p去simplify段野
係因為N年或下一個人睇呢段code
會好奇呢2段係唔係有D special case要handle
performance tuning係其次
(話說呢段code每一個field都會行一次, 但而家D CPU, 果1~2個if唔會有太大分別)

TOP

我有一段code我叫一個programmer新手去除redundant code (定係有其他terms可以用?), 係咪一條好難概事? ...
alexwang 發表於 2016-4-20 09:50


    return iY == 0 ? iX : iX + iY;

TOP

return iY == 0 ? iX : iX + iY;
mafei 發表於 2016-4-20 14:05


呢個其實同寫if else冇分別

TOP

唔識C++, 願聞其詳
係因為0+iY會出事?
alexwang 發表於 2016-4-20 11:59


我打錯void *, 應該用int*

pointer加/減數, 唔係+1就會數值直接+1
而係睇data size幾大
例如int係4 bytes, 你寫iX+1實際會變左+4

TOP

本帖最後由 alexwang 於 2016-4-20 14:19 編輯
我打錯void *, 應該用int*

pointer加/減數, 唔係+1就會數值直接+1
而係睇data size幾大
例如int係4 byte ...
KinChungE 發表於 2016-4-20 14:16


明白, 唔該哂
*睇錯, 之前都係pointer, 無咩分別 (自動ignore左data type, kaka)
而我最僧pointer, 識用好正, 唔識用要諗一大餐

TOP

return iY == 0 ? iX : iX + iY;
mafei 發表於 2016-4-20 14:05


完全一樣, 無分別

TOP