Re: [閒聊] 大家工作上看過哪些誇張的 CODE ?

看板Soft_Job作者 (一葉知秋)時間14年前 (2010/05/19 08:02), 編輯推噓3(300)
留言3則, 3人參與, 最新討論串29/31 (看更多)
※ 引述《bobhsiao (㊣小臃腫㊣)》之銘言: : 最近看到同事寫一個 : char* GetXXXName(...) : { : char str[256] = {'\0'}; : ..... : return str; : } : 回傳區域變數指標...囧rz : 神奇的是跑起來都沒錯, 大概也不會改了吧 如果改成static或許有人會這樣寫吧 至於你所說的thread unsafe的問題 就得看這個函式是為了甚麼設計的 通常 getName() 這種涵式如果寫成 char* getName(...) { static char str[256]; ...; return str; } 就只是為了求方便求快 只是為了某些識別的用途 這個識別的字串大小固定 使用這個程式的演算法快速的需求遠大於安全性 例如只是輔助演算法判斷之用 即使失敗也仍可以繼續正常處理 又或者只是輕量級的debug資訊 至於不加上static的情況下回傳local variable.... 難道是關閉所有中斷line的top half? 不知道這樣設想對不對... 不過一般情況底下回傳local variable實在是沒甚麼道理 而且即使有甚麼"特別的好處"...我覺得應該都不值得... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.224.44.34

05/19 17:42, , 1F
改成回傳const指標 也許會更安全
05/19 17:42, 1F

05/19 21:55, , 2F
同意. 堂堂大道不走, 偏鑽些羊腸小徑. 這不是王道.
05/19 21:55, 2F

05/19 22:05, , 3F
我是原PO,那函數絕對是錯的,只是不是大家都懂,只能感嘆
05/19 22:05, 3F
文章代碼(AID): #1ByogPXz (Soft_Job)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 29 之 31 篇):
文章代碼(AID): #1ByogPXz (Soft_Job)