作者littleshan (我要加入劍道社!)
看板C_and_CPP
標題Re: [問題] 關於純c的程式重構
時間Fri Nov 11 17:03:41 2011
※ 引述《iamstudent (stu)》之銘言:
: 首先
: A.c與B.c有一些完全相同的函數名稱
: 但是工作內容完全不同
: 因為沒有宣告在A.h
: 這一點讓B.c編譯時只會呼叫到自己的函數
: 而不會呼叫到A.c的同名函數
沒道理
這樣會產生 link error
: 這讓我在想
: c沒有private或是public的功能
: 是否能夠利用把函數藏進c檔
: 而達到private的觀念?
: 這樣想是對的嗎?
用 static function
: 但是如果A.c所include的檔案裡面
: 遇到跟自己函數同樣名稱的時候
: 麻煩就出現了吧
: c沒有namespace
: 那麼函數的命名是否都要非常小心
: 而無法使用簡短名稱就好?
: 還是說實際上有什麼比較安全的設計原則?
沒有簡單的方法
要用又臭又長的名稱
通常都是在函式前面加上一些prefix
: ------------------------------------------------------
: 第二個問題是
: B.c並不會被別人include
: 本身就有程式進入點
: (但不是main也不是win main,因為是plugin程式,名稱也非常不顯眼)
: 目前來看
: 只會有B.c會去include B.h
: 那麼,提出head檔B.h,是否是多餘的?
: head檔應該是給別人使用的介面
: 但是能否只純粹為了增加可讀性而存在?
如果你需要 B.c 的文件
請使用 doxygen 之類的工具來幫你產生
.h 的設計根本就是舊時代的產物
如果沒有外部引用的需求就不需要 .h 了
要看內部函式的原形,用 doxygen 產生出來的文件會更方便
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.3.139
推 tropical72:我都不知道有 doxygen 這東西,document 還 key 半天.推 11/11 17:14
推 iamstudent:我自己是很習慣使用doxygen的,只是我也習慣有head檔 11/11 17:24
推 Bencrie:doxygen 很好用的 XD 11/11 22:20