日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言 宏教程 pdf,C语言之详解_ifdef等宏.pdf

發布時間:2024/10/14 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言 宏教程 pdf,C语言之详解_ifdef等宏.pdf 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C 語言之詳解 #ifdef 等宏

指令用途

#空指令,無任何效果

#include 包含一個源代碼文件

#define 定義宏

#undef 取消已定義的宏

#if 如果給定條件為真,則編譯下面代碼

#ifdef 如果宏已經定義,則編譯下面代碼

#ifndef 如果宏沒有定義,則編譯下面代碼

#elif 如果前面的 #if 給定條件不為真,當前條件為真,則編譯下面代碼

#endif 結束一個 #if …… #else條件編譯塊

#error 停止編譯并顯示錯誤信息

這幾個宏是為了進行條件編譯。一般情況下,源程序中所有的行都參加編譯。但是有

時希望對其中一部分內容只在滿足一定條件才進行編譯,也就是對一部分內容指定編譯的

條件,這就是 “條件編譯 ”。有時,希望當滿足某條件時對一組語句進行編譯,而當條件不

滿足時則編譯另一組語句。

條件編譯命令最常見的形式為:

#ifdef 標識符

程序段 1

#else

程序段 2

#endif

它的作用是:當標識符已經被定義過 (一般是用 #define 命令定義 ) ,則對程序段 1 進行編

譯,否則編譯程序段 2。

其中 #else 部分也可以沒有,即:

#ifdef

程序段 1

#denif

這里的 “程序段 ”可以是語句組,也可以是命令行。這種條件編譯可以提高 C 源程序的通

用性。如果一個 C 源程序在不同計算機系統上系統上運行,而不同的計算機又有一定的差

異。例如,我們有一個數據類型,在 Windows 平臺中,應該使用 long 類型表示,而在其

他平臺應該使用 float 表示,這樣往往需要對源程序作必要的修改,這就降低了程序的通用

性??梢杂靡韵碌臈l件編譯:

#ifdef WINDOWS

#define MYTYPE long

#else

#define MYTYPE float

#endif

如果在 Windows 上編譯程序,則可以在程序的開始加上

#define WINDOWS

這樣則編譯下面的命令行:

#define MYTYPE long

如果在這組條件編譯命令之前曾出現以下命令行:

#define WINDOWS 0

則預編譯后程序中的 MYTYPE 都用 float 代替。這樣,源程序可以不必作任何修改就可

以用于不同類型的計算機系統。當然以上介紹的只是一種簡單的情況,可以根據此思路設

計出其它的條件編譯。

例如,在調試程序時,常常希望輸出一些所需的信息,而在調試完成后不再輸出這些信

息??梢栽谠闯绦蛑胁迦胍韵碌臈l件編譯段:

#ifdef DEBUG

print ("device_open(%p)\n", file);

#endif

如果在它的前面有以下命令行:

#define DEBUG

則在程序運行時輸出 file 指針的值,以便調試分析。調試完成后只需將這個 define 命令

行刪除即可。有人可能覺得不用條件編譯也可達此目的,即在調試時加一批 printf 語句,

調試后一一將 printf 語句刪除去。的確,這是可以的。但是,當調試時加的 printf 語句比較

多時,修改的工作量是很大的。用條件編譯,則不必一一刪改 printf 語句,只需刪除前面

的一條 “#define DEBUG”命令即可,這時所有的用 DEBUG 作標識符的條件編譯段都使其中

的 printf 語句不起作用,即起統一控制的作用,如同一個 “開關 ”一樣。

有時也采用下面的形式:

#ifndef 標識符

程序段 1

#else

程序段 2

#endif

只是第一行與第一種形式不同:將 “ifdef改為” “ifndef。它的作用是:若標識符未被定義”

則編譯程序段 1

總結

以上是生活随笔為你收集整理的c语言 宏教程 pdf,C语言之详解_ifdef等宏.pdf的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。