c++ 中define constant

看板Programming作者 (陳揚和)時間17年前 (2009/01/19 09:52), 編輯推噓1(1010)
留言11則, 6人參與, 最新討論串1/1
問一個基本問題 一些class 有buffer 需要定義buffer size 可以統一在某個header file 定義 這樣不同class類似的buffer有同樣大小的定義 或可以在class本身定義 這樣這個class拿到其他地方用的時候也有定義 不會找不到global variable 我以前都用 #ifndef BUFFER_SIZE #define BUFFER_SIZE 10000 #endif 問題是 若改用 const int BUFFER_SIZE=10000; 要怎麼樣不會有重複定義的問題ㄚ 我原本以為一樣用#ifndef就好了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.125.87.33

01/19 10:43, , 1F
第一行不用10000?
01/19 10:43, 1F
※ 編輯: sorryChen 來自: 128.125.87.33 (01/19 11:48)

01/19 11:48, , 2F
sorry..打錯
01/19 11:48, 2F

01/19 12:10, , 3F
namespace
01/19 12:10, 3F

01/19 13:30, , 4F
我有點看不太懂你的問題...是哪裡重覆定義?
01/19 13:30, 4F

01/19 14:12, , 5F
我猜他寫成 global 然後全部 link 起來
01/19 14:12, 5F

01/19 22:23, , 6F
別放在header file, 放在.c/.cpp裡頭
01/19 22:23, 6F

01/19 22:24, , 7F
header file宣告前面加external
01/19 22:24, 7F

01/19 22:24, , 8F
比如說 [.h] extern int BUFFER_SIZE;
01/19 22:24, 8F

01/19 22:25, , 9F
[.cpp] int BUFFER_SIZE = 10000;
01/19 22:25, 9F

01/20 16:16, , 10F
感謝 問了笨問題 其實就是問大家const
01/20 16:16, 10F

01/20 16:17, , 11F
都定意在集中的header再用extern引用
01/20 16:17, 11F
文章代碼(AID): #19Szpncg (Programming)