奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

C語言中define的全部使用方法介紹

時間:2025-05-16 12:13:26 C語言 我要投稿
  • 相關推薦

C語言中define的全部使用方法介紹

  設備驅動代碼中有很多這樣或者那樣的宏定義,各種define,那么,你了解define的全部使用方法嗎?下面小編給大家介紹C語言中define的全部使用方法,歡迎閱讀!

  1. 最最最簡單的 define 定義

  不贅述了,說一下其他的吧,如#define MAX 10,編譯器在處理這個代碼之前會對MAX進行處理,替換為10,或許有些人認為這樣的定義看起來和const常量很相似,但是他們還是有區(qū)別的,#define的定義其實就是簡單的文本的替換,并不是作為一個量來使用

  2. 用 #define 來對函數(shù)進行“定義”

  很多就會問了,什么?居然還能用#define來定義函數(shù),坑爹么?其實咋說呢,就是類似的一個函數(shù)定義罷了,和真正的函數(shù)定義當然還是有區(qū)別的了,下面進行舉例說明:

  還是用上面的MAX的例子:

  #define MAX(a,b) ((a) > (b) ? (a) : (b))

  這個定義就返回兩個數(shù)中較大的那個,不知道你們看到了沒看到,這個”函數(shù)“沒有類型檢查,像不像函數(shù)模板?像?不像?

  其實是有點像的,可以作為一個普通的模板來使用罷了,他肯定沒函數(shù)模板那么安全,WHY?看下面的例子:

  #define MINUS(a,b) a – b,眨眼一看,這個肯定是減法操作的define,有木有?對,沒錯,就是這個意思,這個定義在一般的使用中沒問題,但是在特定的情況下使用會出現(xiàn)問題,如果我們要這樣去使用 的話,展開之后會是什么樣子呢?如:2 * MINUS(a,b) / 4,就像我前面所說的那樣,宏其實就是一個簡單的文本替換,所以展開時候就變?yōu)?2 * a – b / 4,和我們想要的結果是不是不一樣?是不是錯 了?有木有?那要如何解決這個問題呢,很簡單,給原定義加一個括號就OK了,也就是#define MINUS(a,b) (a – b)

  再說一個經(jīng)常出現(xiàn)的一個錯誤,看下面的例子:

  #define pin int *

  pin a,b;

  本意其實都想讓a和b成為int型指針,但是實際上卻變成了int *a,b;a是int型指針,b是int型變量,咋處理捏?這個時候typedef就出來了,它說我可以滿 足define滿足不了的要求,所以改成

  typedef pin (int *)

  就OK了。

  TIP:我們在寫code的時候一定要養(yǎng)成一個良好的習慣和一個良好的代碼編寫風格,建議所有的層次都加上括號

  3. define 的單行定義,舉例說明之,屬于少見用法

  #define A(x) ##x

  #define B(x) #@x

  #define C(x) #x

  如果我們假設x=1,那么A(1)就是1,B(1)就是‘1’,C(1)就是”1“

  4. define 的多行定義

  #define可以進行多行定義,雖然看起來有點蛋疼,但是確實是一個灰常經(jīng)典而且在設備驅動代碼中經(jīng)常要用到的一個方法,格式如下:

  #define MACRO(arg1,arg2) do {

  test1;

  test2;

  }while(0)

  TIP:在每一行的末尾要加上,切記!

  5. 定義宏和取消宏定義的方法

  定義一個宏使用#define,取消一個宏定義使用#undef

  6. 使用宏進行條件編譯

  格式如下:#ifdef … (#else) … #endif

  如:

  #ifdef HELLO

  #define WORLD 1

  #else

  #define WORLD 0

  #endif

  7. 用define來處理頭文件被頭文件或者源文件包含的情況

  由于頭文件包含可以嵌套,那么c文件有可能包含多次同一個頭文件,就會出現(xiàn)重復定義的問題的,那么可以就通過條件編譯開關來避免重復包含,如下:

  #ifndef _HELLO_H_

  #define _HELLO_H_

  ...

  //文件內(nèi)容

  ...

  #endif


【C語言中define的全部使用方法介紹】相關文章:

C語言中define的使用方法10-07

C語言中volatile的使用方法09-30

C語言#define的用法08-19

c語言中指針的使用方法10-12

C語言中const關鍵字的使用方法10-02

對C語言中的sizeof的介紹分析09-22

C語言中位段的詳細介紹06-08

C語言中指針的用法介紹10-27

C語言的關鍵字define的使用08-03

主站蜘蛛池模板: 保康县| 彭州市| 焉耆| 玉林市| 锡林郭勒盟| 寻甸| 固镇县| 蒲城县| 新干县| 平顺县| 什邡市| 仙桃市| 临清市| 宜黄县| 潜江市| 尉氏县| 南陵县| 时尚| 三明市| 驻马店市| 白玉县| 巍山| 老河口市| 元谋县| 西和县| 普兰县| 会泽县| 平果县| 达孜县| 林周县| 平顶山市| 宜城市| 绍兴市| 龙井市| 浙江省| 太仓市| 红桥区| 泾阳县| 济源市| 旅游| 雷山县|