您好,登錄后才能下訂單哦!
/* 預處理指令?: ????宏定義?:?就是將代碼中的宏名進行簡單的替代,不進行任何運算; ????????不帶參數的宏定義?: ????????????基本格式?:? ????????????????#idefine?宏名?宏值????//程序預處理時,會將代碼中,所有的宏名都替代為宏值; ????????????????????宏名書寫規范?:?全部大寫,單詞之間以"_"分隔; ????????????????????注?:?切記紅定義中,不要以";"結尾,原因在宏定義中默認宏名之后所有的內容均為宏值,因此,一旦以";"結尾,也會將其當做宏值處理; ????????帶參數的宏定義?: ????????????基本格式?: ????????????????#define?宏名(形參)?宏值????//預處理時,會將接受的實參替代宏值中的形參,而后再將代碼中所有的宏名以宏值替代; ????????????????????形參?:?此處無需寫形參的數據類型,因此沒有任何意義; ????????????????????應用?:?此時的宏值多為一行簡單代碼,而某一單一值; ????????注?:?如果在代碼中,宏名被包裹在""中,則預處理時,宏名不會被宏值替代; ????????宏的作用域?:?自定義位置起至文件末尾; ????????提前結束宏的作用域?:?#undef?宏名; ????????宏定義的應用場景?:?常用于記錄一些頻繁使用且繁瑣的數據; ????條件編譯?:?當條件滿足時,就將對應的代碼塊保留在程序中執行; ????????基本格式?: ????????????#if?condition? ????????????????代碼塊; ????????????#elif?condition ????????????????代碼塊; ????????????#else ????????????????代碼塊; ????????????#endif????//當某一個條件滿足時,只保留該條件對應的代碼塊,其他至endif之間的代碼塊全部刪除; ????????其他寫法?: ??????????第一種?: ????????????#ifdef?宏名 ????????????????代碼塊; ????????????#else ????????????????代碼塊; ????????????#endif ??????????第二種?: ??????????????#ifndef?宏名 ??????????????????代碼塊; ??????????????#else ??????????????????代碼塊; ??????????????#endif ????????條件編譯的優點?: ????????????1,節省內存,因為不滿足條件的代碼塊均會被刪除; ????????????2,常用于調試過程,如當我們為qq寫一個用戶分組時,需要頻繁登陸qq,以查看效果.因此,在調試過程中,我們就可以把自己的用戶名,密碼寫入條件編譯中的宏定義中,\ ??????????????以節省我們頻繁登陸輸入用戶名,密碼浪費的時間,而在上傳應用后,只需修改一下條件,即跳轉用戶登陸; ?????文件包含?:?也即將其他文件復制替代本文件中文件包含那一行代碼; ?????????#include?<>????//會先在編譯環境下查找,找不到,再到系統環境下查找指定文件; ?????????#include?""????//會現在當前文件目錄下查找指定文件,找不到,再編譯環境下查找,找不到,再到系統環境下查找指定文件; ?????注?:?重復導入頭文件,會降低程序執行效率,因此可利用條件編譯,寫一個頭文件衛士,一旦已經導入了該頭文件,就不在重復導入; */
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。