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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

#if defined 和 #if ! defined 的用法

發(fā)布時(shí)間:2023/11/30 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 #if defined 和 #if ! defined 的用法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

背景:MFC初學(xué),頭文件中有

#if !defined(AFX_HELLOMFC_H__706D36F5_2F1B_40AC_8BE9_0BD6A1D7BBDE__INCLUDED_)
#define AFX_HELLOMFC_H__706D36F5_2F1B_40AC_8BE9_0BD6A1D7BBDE__INCLUDED_

// Info : Other content

#endif // !defined(AFX_HELLOMFC_H__706D36F5_2F1B_40AC_8BE9_0BD6A1D7BBDE__INCLUDED_)

注:AFX_HELLOMFC_H__706D36F5_2F1B_40AC_8BE9_0BD6A1D7BBDE__INCLUDED_ 是一個(gè)由VC自定義的標(biāo)識(shí)符,你也可以替換成其他的,上面代碼就可以類比為下邊的代碼,看起來是不是清爽很多啊。這是微軟VS的個(gè)性化命名

#if !defined(AFX_HELLOMFC_H_)
#define AFX_HELLOMFC_H_

// Info : Other content

#endif // !defined(AFX_HELLOMFC_H_)


正題:C語(yǔ)言的宏定義一、#if defined 的作用因?yàn)閷?duì)于一個(gè)大程序而言,我們可能要定義很多常量( 不管是放在源文件還是頭文件 ),那么我們有時(shí)考慮定義某個(gè)常量時(shí),我們就必須返回檢查原來此常量是否定義,但這樣做很麻煩.
if defined宏正是為這種情況提供了解決方案.舉個(gè)例子,如下:

#define a 100

#define b 100

#define v 100

// ^^^^^^

#define s 100

#define da 100

#define af 100

#define a 200 // Here is the key

上面已經(jīng)定義過一次 a 的值了,因?yàn)橹虚g有很多語(yǔ)句,看不到,又忘了有沒有定義,下面又來了一條,把上面的替掉了。這就是問題了!此時(shí),我們要檢查a是否定義(假設(shè)我們已經(jīng)記不著這點(diǎn)了),或者我們要給a一個(gè)不同的值,就加入如下句子:

#if defined a // or #ifdef a

#undef a

#define a 200

#endif

或者

#ifndef a

#define a 200

#endif

上面就是 #if defined 的唯一作用了?二、#if ! defined 的作用#if defined XXX_XXX
#endif
是條件編譯,是根據(jù)你是否定義了XXX_XXX這個(gè)宏,而使用不同的代碼。一般.h文件里最外層的
#if !defined XXX_XXX
#define XXX_XXX
#endif
是為了防止這個(gè).h頭文件被重復(fù)include
三、其他相關(guān)含義

指令 用途
# 空指令,無(wú)任何效果
#include 包含一個(gè)源代碼文件
#define 定義宏
#undef 取消已定義的宏
#if 如果給定條件為真,則編譯下面代碼
#ifdef 如果宏已經(jīng)定義,則編譯下面代碼
#ifndef 如果宏沒有定義,則編譯下面代碼
#elif 如果前面的#if給定條件不為真,當(dāng)前條件為真,則編譯下面代碼
#endif 結(jié)束一個(gè)#if……#else條件編譯塊
#error 停止編譯并顯示錯(cuò)誤信息

?

轉(zhuǎn)載于:https://www.cnblogs.com/herbertchina/p/4306818.html

總結(jié)

以上是生活随笔為你收集整理的#if defined 和 #if ! defined 的用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。