[問題] 變數前加 prefix 有什麼好處?

看板C_and_CPP作者 (ResolaQQ)時間8年前 (2015/09/11 20:09), 8年前編輯推噓7(7020)
留言27則, 15人參與, 最新討論串1/1
問題(Question): 請問變數前加 prefix c_ 有什麼好處?像是把 x, y 改成 c_x, c_y 這樣 約耳談軟體那篇匈牙利命名法我有看過了 但是「讓錯的程式看得出錯」這點對我來說沒啥意義,反正寫錯根本執行不了 那麼還有什麼支持這樣做的理由呢?煩請提點,感謝 -- 放著養蚊子的部落格 http://resolaqq.blogspot.tw -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.233.6.135 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1441973354.A.5E5.html

09/11 20:44, , 1F
執行不了就雙手一攤作業不交產品不出嗎
09/11 20:44, 1F

09/11 20:52, , 2F
約耳的重點在於執行不了之後除錯的過程, 你會比較容易找到
09/11 20:52, 2F

09/11 20:53, , 3F
可能出錯的地方, 就像麵包師傅知道什麼樣子不對勁
09/11 20:53, 3F

09/11 20:54, , 4F
不過看起來你的 c_ 不太像是他所想講的那種 prefix
09/11 20:54, 4F

09/11 20:54, , 5F
你這個 c_ 是在哪裡看到的?
09/11 20:54, 5F

09/11 20:57, , 6F
搞不好那跟本不是prefix 而是某個單詞的縮寫
09/11 20:57, 6F

09/11 20:59, , 7F
寫得不清不楚 比較像抱怨碎念而非發問
09/11 20:59, 7F

09/11 21:01, , 8F
"反正寫錯根本執行不了" 這句就有待商確. 你真的看懂那篇?
09/11 21:01, 8F
看來誤會誤很大 執行不了的意思是,程式會自動在寫錯的那行停下來 既然都知道是哪行錯了,修正就很簡單,所以說「讓錯的程式看得出錯」對我沒意義 那個 c_ 的意思其實是屬於 C 的 Struct,但是知道這個似乎沒有任何用處 如同前述,用錯它自己會停下來,所以知不知道都無所謂,反正是修同個地方 這不是抱怨碎念,因為那個 c_ 是程式自動加上去的東西,要讓程式別加 c_ 很簡單 我不想要加 c_ 的原因是,這會妨礙我複製貼上別人的程式碼 要手動在每個地方加 c_,比想像中的麻煩很多,而且很難看,像底下這樣 if (e.c_key.c_keysym.c_sym == SDLK_UP) 因為程式預設就是會自動加 c_,我在想可能有什麼特殊的原因 但實在想不出來,所以才來這邊發問 如果沒有實在的理由,就要準備把 c_ 全砍了,不知有沒有人能理解為何要預設這樣做?

09/11 21:35, , 9F
等你寫到幾千幾萬行的程式碼就知道命名的重要了
09/11 21:35, 9F

09/11 21:54, , 10F
你可能沒看過s1,s2,...,s48的變數命名,不知道那有多痛苦
09/11 21:54, 10F

09/11 21:56, , 11F
"程式會自動在寫錯的那行停下來" <- 你寫的真的是C/C++?
09/11 21:56, 11F
應該說會在轉譯的時候停下來啦,表達不清請多包涵 程式會先被轉譯一次變成純 C 的 source code,然後才餵給 compiler ※ 編輯: ResolaQQ (1.165.40.147), 09/11/2015 22:07:23

09/12 04:12, , 12F
聽起來你是在preprocessor 那邊遇到加prefix 的程式碼
09/12 04:12, 12F

09/12 04:12, , 13F
曾經看過有人的程式還在外面另外包了macro 的shell
09/12 04:12, 13F

09/12 04:13, , 14F
至於好處,macro 寫到複雜處也是需要好讀的名子 Orz
09/12 04:13, 14F

09/12 19:38, , 15F
成員變數用一種prefix 區域變數用一種prefix 全域變數
09/12 19:38, 15F

09/12 19:39, , 16F
用一種prefix 可以約略避免名稱遮蔽問題
09/12 19:39, 16F

09/13 00:38, , 17F
約爾說的錯是 runtime error...
09/13 00:38, 17F

09/13 16:55, , 18F
寫錯的地方停下來是Runtime error,是記憶體分配或是
09/13 16:55, 18F

09/13 16:57, , 19F
沒Catch到throw出來的exception
09/13 16:57, 19F

09/13 16:57, , 20F
跟 prefix 無關
09/13 16:57, 20F

09/14 01:27, , 21F
好像沒有很充足的理由,我先把c_全砍掉好了,謝謝各位
09/14 01:27, 21F

09/14 02:07, , 22F
看到匈牙利我比較會想哭
09/14 02:07, 22F

09/14 13:24, , 23F
匈牙利是以前那種ide功能很差的時代的產物
09/14 13:24, 23F

09/14 13:24, , 24F
現在游標上去點一下都知道type了 實在沒必要在匈牙利
09/14 13:24, 24F

09/14 19:07, , 25F
原PO是在用RPython,加上c_是為了區分python/C的變數
09/14 19:07, 25F

09/14 19:12, , 26F
不過PyPy已經不再建議用RPython做extension了
09/14 19:12, 26F

09/16 19:28, , 27F
(!!) RPython 怎麼了?
09/16 19:28, 27F
文章代碼(AID): #1LyiHgNb (C_and_CPP)