1樓:網友
定義巨集,並在預處理過程中將其替換為空字串(即刪除)。
這樣做主要是為了標記某些內容,使程式閱讀者能夠清楚標記表明的意義,同時又不影響被編譯的源**。
另外,通常這些標記能被條件編譯的預處理命令#ifdef、#ifndef檢測到。乙個重要的用法是多檔案編譯中防止標頭檔案被重複包含,如:
#ifndef _header_
#define _header_
something*/
#endif
/*something*/
#include""
something*/
這樣無論哪個。c檔案先被編譯,包含以後,之後進入#include後中的_header_已定義,那麼#ifndef _header_和#endif之間的**不會被重複編譯,的目標**只存在於其中乙個原始檔的目標**檔案中,鏈結器鏈結兩個原始檔編譯的目標檔案時不會產生因為重複編譯導致的重複定義的鏈結錯誤。
c語言#define後面只有乙個引數是什麼意思
2樓:雪v歌
#define是巨集定義的意思。
2. 巨集定義是用巨集名來表示乙個字串,在巨集時又以該字串取代巨集名,這只是一種簡單的代換,字串中可以含任何字元,可以是常數,也可以是表示式,預處理程式對它不作任何檢查。如有錯誤,只能在編譯已被巨集後的源程式時發現。
3.巨集定義不是說明或語句,在行末不必加分號,如加上分號則連分號也一起置換。
4.巨集定義其作用域為巨集定義命令起到源程式結束。如要終止其作用域可使用#undef命令。
3樓:網友
這是空巨集定義,不會影響**,不過對後面的#indef和#ifndef有用。
define只有乙個引數
4樓:
那個是空巨集定義。
最典型的是。
#define debug
#define unicode
如果像這樣,define後面只有乙個名字,那麼這個巨集是空的,不會對**產生影響。
這裡我說一下unicode巨集。
unicode巨集被定義的時候,代表程式使用unicode,否則是多字符集的。字符集不同會影響很多函式,因為win32api中同乙個函式分為a和w 2套,這裡的處理類似這種:
#ifdefine unicode
#define messagebox messageboxw
#else#define messagebox messageboxa
#endif
這裡,如果你的程式使用了unicode,vs編譯器會為你定義unicode巨集,你使用messagebox函式,實際使用的是messageboxw。反之,如果沒有勾選使用unicode的選項,則unicode巨集未定義,使用messagebox函式的時候,實際使用到的是messageboxa。
這樣的好處顯而易見,通過乙個unicode巨集做標記,程式可以對應unicode和asci2個不同的版本,想要切換就變得很方便。
另乙個常見的空巨集定義,是in 和out。
它們用來對函式進行說明,你去看msdn,微軟的所有函式,都是這個樣子的,比如說下面這個:
farproc winapi getprocaddress(
in_ hmodule hmodule,in_ lpcstr lpprocname
前面的_in_就是用來說明,這個是輸入引數。類似還有_out_表示輸出引數,_opt_表示可選引數,而且可以連用,因為它們本來就是空定義。
總之,巨集定義是可以為空的。空定義一般都是來做說明(in out巨集),或者作為乙個標記(unicode和debug巨集),起到切換配置的作用。
define 後面跟函式是什麼意思?
5樓:貝貝車
define() 函式是定義為乙個常量。
常量類似變數,不同之處在於:
在設定以後,常量的值無法更改;
常量名不需要開頭的美元符號 ($
作用域不影響對常量的訪問;
常量值只能是字串或數字;
語法:define(name,value,case_insensitive)。
引數描述:name為必需。規定常量的名稱。
value為必需。規定常量的值。
case_insensitive為可選。規定常量的名稱是否對大小寫敏感。
若設定為 true,則對大小寫不敏感。預設是 false(大小寫敏感)。
6樓:網友
例如: #define m (a+b) 它的作用是指定識別符號m來代替表示式(a+b)。在編寫源程式時,所有的(a+b)都可由m代替,而對源程式作編譯時,將先由預處理程式進行巨集代換,即用(a+b)表示式去置換所有的巨集名m,然後再進行編譯。
7樓:花開在那年
函式功能沒有實現,但是後面程式中有呼叫此函式,為了避免報錯,所以用#defined 定義一下。
#define modbus_crc 一般定義乙個變數後面為乙個數值,但是這個後面沒有數字代表
8樓:小鑫聊兩性
就是指定義了乙個巨集 modbus_crc
可能是在下文中用於判斷條件的。
#ifdef modbus_crc
#else#endif
9樓:網友
不需要數值,它只是告訴編譯器modbus_crc已經被定義了。
可以與#ifdef modbus_crc...或者是#ifndef一起用。
微控制器c語言乙個標頭檔案中包含許多隻有乙個識別符號的#define,為什麼
10樓:網友
#define後面只跟乙個識別符號,表示這個識別符號不代表任何值,就是乙個空的識別符號,常用於作為乙個字首標識,只是為了增加**的可讀性。這樣說你可能還不明白,其實這樣的用法在很多地方都會出現,比如mfc和windows sdk標頭檔案中有乙個修飾函式引數的#define定義,它的定義是這樣的:
#define in
#define out
然後它的用法可能是這樣的:
void function(in lparam lparam, out wparam outparam);
in和out只是修飾,不代表任何東西,所起的只是乙個說明作用,說明乙個引數是乙個輸入引數,而另乙個是乙個輸出引數,還能增加**的可讀性。
11樓:網友
這是巨集定義指令,有多少個都是可能的。
#define a表示什麼意思?
12樓:網友
#define a
就是定義了a這個符號。
一般和下面這段**結合。
#ifdef a
如果定義了a,這段**就會執行。
#endif
13樓:網友
#define a 12
意思就是把a與12等同用。a即12,這是方便修改數值而改的。比如a代表匯率,今天是8,明天是9,只需改這個define就好了。
#define ok 1 是什麼意思
14樓:網友
1、巨集定義,就是定義ok=1,當後面呼叫ok的時候,ok就相當於1;
2、在程式設計中使用巨集的好處是:使程式方便閱讀,同時編寫起來也方便。 比如「#define ok 1、#define error 0、#define overflow -2」這三個巨集一般用在子程式,子模組返回的三個狀態。
用、-2 三個數來表示。
程式中只是寫三個數的話,閱讀時不太明白三個數的意義,需要深入程式中去了解。當時瞭解了,記住了,過後可能又會忘記。寫成這樣,不用瞭解具體是幾,只知道是這個狀態。
自己寫程式,有時也會忘記自己給這幾個狀態當時定義了是幾,所以用巨集代替你的好記性。
3、可以看看c++語言中關於"#define"的學習資料。
無參巨集定義。
無參巨集的巨集名後不帶引數。
其定義的一般形式為:
#define 識別符號 字串。
其中的「#」表示這是一條預處理命令。凡是以「#」開頭的均為預處理命令。「define」為巨集定義命令。「識別符號」為所定義的巨集名。「字串」可以是常數、表示式、格式串等。
符號常量的定義就是一種無參巨集定義。此外,常對程式中反覆使用的表示式進行巨集定義。
例如:#define m (y*y+3*y)
它的作用是指定識別符號m來代替表示式(y*y+3*y)。在編寫源程式時,所有的(y*y+3*y)都可由m代替,而對源程式作編譯時,將先由預處理程式進行巨集代換,即用(y*y+3*y)表示式去置換所有的巨集名m,然後再進行編譯。
帶參巨集定義。
c++語言允許巨集帶有引數。在巨集定義中的引數稱為形式引數,在巨集呼叫中的引數稱為實際引數。
對帶引數的巨集,在呼叫中,不僅要巨集,而且要用實參去代換形參。
帶參巨集定義的一般形式為:
#define 巨集名(形參表) 字串。
在字串中含有各個形參。
帶參巨集呼叫的一般形式為:
巨集名(實參表)。
15樓:love_u_妹子
巨集定義 就是定義ok=1 後面呼叫ok的時候 ok就相當於1
如果跟乙個女生表白到後面她跟你說下次可以打招呼認識認識?
首先,每個人都有自己的經歷和命運,遇到過挫折和困難也是正常的,所以並不能說你 倒黴 其次,你能夠克服心臟雜音的問題,併成功考上研究生,是非常不易和值得稱讚的。最後,歲輪鎮禪其實也不算大,很多人在這個年紀也開始追求理想和事業,在人生的道路上找到自己的方向和價值。因此,無論過去還是現在,都旅廳不是定義你...
arcgis已知乙個轉換引數,怎麼計算反向轉換
arcgis中有乙個柵格計算器,是專門進行計算的 反向轉換,具體是個什麼意思 可以詳細解釋一下。如何在arcmap進行引數轉換 在資料組上點選右鍵,選擇properties命令,開啟data frame properties對話方塊 在coordinating system選項卡中單擊predefin...
才字後面鬥是什麼成語一個才字後面八個鬥是什麼成語
這個成語是才高八斗。才高八斗是一個成語,讀音是c i g o b d u,意思是形容人文才高超。典故南朝宋國有謝靈運,是我國古代著名的山水詩作家。他政治上的失意,從而寄情于山水,寫有大量山水詩,與文章冠絕當時的另一個文人顏延之齊名,並稱為 江東第一 他的詩,大都描寫會 ku i 稽 永嘉 廬山等地的...