[問題] #define 的用法

看板C_and_CPP作者 (~口卡口卡 修~)時間14年前 (2010/06/20 18:35), 編輯推噓4(407)
留言11則, 3人參與, 最新討論串1/1
遇到的問題: 想請問一下   就是 OpenCV 裡面有一個函式變數宣告: CvScalar WHITE = cvScalar( 255, 255, 255); 因為上面那個顏色值很常用   所以想把它用 #define 定義 WHITE 為 cvScalar( 255, 255, 255)   如此一來 function 裡頭就可以直接打 WHITE.val[] 來使用白色的 B、G、R 值 不過我在外面打上: #define WHITE cvScalar( 255, 255, 255) compile 可以過   但是當我在 main 裡頭打上: cout<<WHITE.val[0]<<endl; 測試的時候,卻發生錯誤 想請問要怎麼打才正確   對 define 不是很熟 > < 多謝 開發平台: Dev C++ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.141.151

06/20 18:37, , 1F
那這樣 原本宣告的WHITE怎麼展開??
06/20 18:37, 1F

06/20 18:40, , 2F
我覺得你可以用一個class包很多static const 的顏色直接用
06/20 18:40, 2F

06/20 18:41, , 3F
用define似乎不太對
06/20 18:41, 3F

06/20 18:43, , 4F
那 define 有辦法做到我說的那件事嗎?
06/20 18:43, 4F

06/20 18:44, , 5F
以前沒那樣寫過,所以想問問看 > <
06/20 18:44, 5F

06/20 18:46, , 6F
我沒看opencv耶 但你說他有變數是取WHITE 但你既然用的到
06/20 18:46, 6F

06/20 18:46, , 7F
就直接拿WHITE來用呀 如果你是要隨時拿到這個值 那就宣告成
06/20 18:46, 7F

06/20 18:47, , 8F
global 隨時可以拿呀! 你define 是因為妳必須自己定義WHITE?
06/20 18:47, 8F

06/20 18:48, , 9F
cvScalar( 255, 255, 255).val 能編譯過?
06/20 18:48, 9F

06/20 18:51, , 10F
樓上大大那樣打可以
06/20 18:51, 10F

06/20 18:52, , 11F
cvScalar( 255, 255, 255).val[0] = 255
06/20 18:52, 11F
文章代碼(AID): #1C7Ux-xZ (C_and_CPP)