PTT推薦

Re: [請益] 這是什麼語法 (for C)?

看板Soft_Job標題Re: [請益] 這是什麼語法 (for C)?作者
sxy67230
(charlesgg)
時間推噓 2 推:2 噓:0 →:6

※ 引述《wsad50232 (GGYY)》之銘言
: *ptr++ =
: "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz" [35: + (tmp_value - value * base)];
: 在這邊看到的
: https://stackoverflow.com/questions/8257714/how-to-convert-an-int-to-string-in
-c
: 不怕各位笑,小弟摸C語言這麼久,今天第一次看到這種寫法
: 看了半天,實在是不知道是什麼意思
: 程式碼我Compile過,確定是可以編譯可以Run的
: 有高手能給個解答嗎?


其實你仔細思考這塊作者本來想實作itoa的GCC代碼本來就是為了兼容各種進制下的轉換避免寫大量的特例去處理或是要像前版本一樣要去塞pre-allocate做出特例,同時還要避免最大負數的Bug,還有實作在GCC這種基礎庫上本來用一些指標技巧或是其他技巧就是情有可原的,會說新手不要亂嘗試是怕新手無法駕馭,不然像linux kernel 一堆指標的指標這種技巧避免寫出一堆特例本來就是好的方法,同時兼顧風格跟速度,這些都是能實作GCC的各大神思考的事情。

所謂的軟體工程架構這些本來就要思考開發者的背景跟思考方法,而不是什麼只要我看不懂的都是爛code,我不知道為什麼軟工版近期會有一堆人有這種想法而不去思考再下結論。

如果你仔細思考這段代碼而且細想他想實作的是在系統底層,那你就會理解開發者想做的事,而不是一昧批評。

我覺得很多人不去思考開發者想實作的背景就直接下定論是蠻差的討論方式,當然,我也不贊成新手看過大神的這樣實作方法就直接全部照抄,那也會淪為真正的爛code,為炫技而炫技。

以上

----
Sent from BePTT on my Sony XQ-AU52

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.6.188 (臺灣)
PTT 網址

netburst05/23 01:48一堆人說的一嘴clean arch結果產品性能爛到哭 整天在那

netburst05/23 01:48邊雕這個該放那那個該放這 ZZZ

k79897686905/23 08:22那是因為一樓你們寫得很上層啊 效能瓶頸不在那 當然可

k79897686905/23 08:22以拿效能換可讀可維護性

viper970905/23 17:26推~沒想過這一點

netburst05/24 01:16效能當然不能拿來換這些

wulouise05/24 08:44效能也只是考量點之一,但還是根據context決定

wulouise05/24 08:44一天只跑一次的code效能可能不重要 itoa這種效能就很重