作者pinkRD (一葉知秋)
看板Soft_Job
標題Re: [閒聊] 大家工作上看過哪些誇張的 CODE ?
時間Wed May 19 08:02:30 2010
※ 引述《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
推 ckdarkknight:改成回傳const指標 也許會更安全 05/19 17:42
推 bobju:同意. 堂堂大道不走, 偏鑽些羊腸小徑. 這不是王道. 05/19 21:55
推 bobhsiao:我是原PO,那函數絕對是錯的,只是不是大家都懂,只能感嘆 05/19 22:05