[問題] Header & 多檔編譯 問題

看板C_and_CPP作者 (Cory)時間13年前 (2012/04/01 16:06), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/2 (看更多)
各位好: 我想請問一些關於自訂函式 & 多檔編譯的問題 麻煩大家指教了 (問題有點冗長 敬請包涵) 現在有三個檔案 MyFunc.h 、 MyFunc.cpp 以及原本的 main.cpp -------------- MyFunc.h ----------------- #ifndef MyFunc_H_ #define MyFunc_H_ #include <cmath> const int radio = 5; double myMath (double, double); #endif ----------------------------------------- ------------- MyFunc.cpp ---------------- #include "MyFunc.h" double myMath (double a, double b) { return ratio*(sin(a) + cos(b)) ; } ------------------------------------------ -------------- main.cpp ------------------ #include <iostream> #include "MyFunc.h" int main() { std::cout << myMath(3.14, 3.14); return 0; } ------------------------------------------ 答案大概是 -4.99~ 接近 -5 1. 如果想把函式獨立成一個檔案 是不是都要分開成 原型的 header 跟 實作的 cpp 然後搭配 Header Guard ? 2. #include <cmath> 是不是只要在 .h 檔案放一次就好 ? 主程式 & 實作.cpp 都不用再放了 ? 3. 如果想定義有一些常數 像是 const int radio = 5; 這句可以直接放在 .h 嗎 ?? 因為我還有其他的檔案 compute.cpp 會用的這個 radio 跟 myMath() 所以把 radio 定義在一個 .h 裡面 然後其他 cpp 再去 #include "XXX.h" 這樣OK嗎 ?? 4. 承(3.) 那些 .cpp 檔案要去 宣告 extern int radio; 嗎 ?? 感覺好像要 但是我用 g++ -c MyFunc.cpp 不加直接跑也可以過 所以 ?? --- 以上幾個問題 感謝各位耐心看完 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.255.238.109

04/01 19:48, , 1F
最重要的觀念:#include 基本上就是把程式碼複製貼上
04/01 19:48, 1F

04/01 19:57, , 2F
推樓上,基本上include只是讓你比較好管理
04/01 19:57, 2F

04/01 19:58, , 3F
最後還是全部包起來,g++可以看precompiler忘了參數
04/01 19:58, 3F

04/01 19:58, , 4F
要加上什麼了
04/01 19:58, 4F

04/01 19:58, , 5F
-E
04/01 19:58, 5F

04/01 20:00, , 6F
header file的概念很簡單,但要用得好實在有點難....XD
04/01 20:00, 6F
謝謝各位回答 ※ 編輯: cory8249 來自: 111.255.7.196 (04/02 14:01)
文章代碼(AID): #1FU0oM6B (C_and_CPP)
文章代碼(AID): #1FU0oM6B (C_and_CPP)