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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

C语言中#if,#if defined ,#ifdef,extern的用法描述

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

1、#if 和#ifdef

當(dāng)asd_eee表達(dá)式存在而且,值為ture的時(shí)候接續(xù)向下執(zhí)行

例如

#define TARGET_LITTLE_ENDINA 1 #define TARGET_BIG_ENDINA ? 0 #ifdef TARGET_LITTLE_ENDINA call little endina function #else call big endina function #endif


上面的今天寫的代碼,發(fā)現(xiàn)我不管把TARGET_LITTLE_ENDINA和TARGET_BIG_ENDINA定義成0或者1,調(diào)用的都是little endina函數(shù),一直找不到問題所在,看看代碼也沒有什么問題。經(jīng)過分析和查找相關(guān)的文檔,原來是自己沒有理解#if和#ifdef之間的區(qū)別。
對(duì)于#if需要是一個(gè)表達(dá)式,如果表達(dá)式為1則調(diào)用#if下面的代碼。
對(duì)于#ifdef需要的只是這個(gè)值有沒有定義,并不關(guān)心這個(gè)值是什么。
表明之間的區(qū)別問題就變得非常的容易,只要把上述代碼中的#ifdef改成#if就可以達(dá)到目的。

2 ,#if defined

?

,#if defined 的意思是是是否對(duì)某一個(gè)表達(dá)式進(jìn)行了定義

例如?

#if defined(_WIN32)|| defined(WIN32) # include #else ........

例如上面這段代碼,如果既沒有定義_WIN32也沒有定義WIN32,那么include頭文件 io.h

3 extern

1.extern用在變量聲明中常常有這樣一個(gè)作用,你在*.c文件中聲明了一個(gè)全局的變量,這個(gè)全局的變量如果要被引用,就放在*.h中并用extern來聲明。
2.如果函數(shù)的聲明中帶有關(guān)鍵字extern,僅僅是暗示這個(gè)函數(shù)可能在別的源文件里定義,沒有其它作用。即下述兩個(gè)函數(shù)聲明沒有區(qū)別:
extern int f(); 和int f();
=================================
如果定義函數(shù)的c/cpp文件在對(duì)應(yīng)的頭文件中聲明了定義的函數(shù),那么在其他c/cpp文件中要使用這些函數(shù),只需要包含這個(gè)頭文件即可。
如果你不想包含頭文件,那么在c/cpp中聲明該函數(shù)。一般來說,聲明定義在本文件的函數(shù)不用“extern”,聲明定義在其他文件中的函數(shù)用“extern”,這樣在本文件中調(diào)用別的文件定義的函數(shù)就不用包含頭文件
include “*.h”來聲明函數(shù),聲明后直接使用即可。
=================================
舉個(gè)例子:
//extern.cpp內(nèi)容如下:

// extern.cpp : Defines the entry point for the console application.// #include "stdafx.h"extern print(char *p);int main(int argc, char* argv[]){char *p="hello world!";print(p);return 0;}//print.cpp內(nèi)容如下#include "stdafx.h"#include "stdio.h"print(char *s){printf("The string is %s/n",s);}

結(jié)果程序可以正常運(yùn)行,輸出結(jié)果。如果把“extern”去掉,程序依然可以正常運(yùn)行。

由此可見,“extern”在函數(shù)聲明中可有可無,只是用來標(biāo)志該函數(shù)在本文件中定義,還是在別的文件中定義。只要你函數(shù)在使用之前聲明了,那么就可以不用包含頭文件了。

聲明:

本文于網(wǎng)絡(luò)整理,版權(quán)歸原作者所有,如來源信息有誤或侵犯權(quán)益,請(qǐng)聯(lián)系我們刪除或授權(quán)事宜。

總結(jié)

以上是生活随笔為你收集整理的C语言中#if,#if defined ,#ifdef,extern的用法描述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本ww色| 国产一级二级三级在线观看 | 亚洲欧美激情另类校园 | 男人操女人的软件 | 日韩欧美在线免费观看 | 欧美aⅴ在线| 国产超级av | ⅹxxxxhd亚洲日本hd老师 | 国产专区一区二区 | 黄色网页免费观看 | 神马午夜麻豆 | 99久 | 日本高清不卡二区 | 精品国产一区二区三区四 | а√天堂8资源中文在线 | 日本天堂网在线 | 中文字幕一区在线观看 | 久久99精品视频 | 午夜操一操 | 中文婷婷 | 亚洲熟女一区二区 | 韩国精品一区二区 | 伊人资源 | 午夜精品久久久久久久久久久久 | 韩国一级片在线观看 | 亚洲三级av | 大地资源中文在线观看免费版 | 在线看片不卡 | 人与禽一级全黄 | 精品人妻一区二区三区久久夜夜嗨 | 天天爽av| 一级成人av | 性歌舞团一区二区三区视频 | 91精品国产综合久久福利 | 国产视频在线观看一区二区 | 精品人妻一区二区三区日产 | 成人av免费观看 | 欧美性生交xxxxx久久久 | 都市激情亚洲色图 | 国产毛片在线看 | 荒野求生21天去码版网站 | 国产成人一区二区三区 | 韩国毛片一区二区三区 | 亚洲欧洲精品在线 | 国产精品无码乱伦 | av大全在线观看 | 日韩综合另类 | 一区二区日韩在线观看 | 激情五月婷婷网 | 成人做爰www看视频软件 | 国产精品老牛影院99av | 五月婷婷开心 | 国产欧美日韩精品在线 | 免费网站观看www在线观 | 亚洲影视在线 | 日本激情免费 | 国产精品无码内射 | 伊人一二三 | 91性高潮久久久久久久久 | 奇米第四色777 | 亚洲色图一区二区三区 | 337p粉嫩色噜噜噜大肥臀 | av日日操 | 成人人伦一区二区三区 | 欧美一区二区三区网站 | 91久久国产综合久久91精品网站 | 久久精品国产亚洲AV熟女 | 超碰在线国产97 | 肉视频在线观看 | 91黄色免费观看 | 91香蕉国产在线观看软件 | 中文无码一区二区三区在线观看 | 亚洲成人一二区 | 香蕉视频国产在线观看 | 国产无遮挡裸体免费视频 | 欧美精品v国产精品v日韩精品 | 日韩综合网 | www.操操操 | 天天色天天搞 | 999在线视频 | 成人国产精品免费观看视频 | 亚洲欧美成人综合 | 亚洲一区二区免费在线观看 | 久久综合高清 | 秋霞毛片| 97国产视频 | 中文一区二区 | 午夜影院免费视频 | 成人在线观看亚洲 | 手机在线观看av | 国产精品一区二区性色av | 国产盗摄在线观看 | 色吧av色av| 久久网址| 日本少妇xxx | 日韩精品电影一区 | 日韩黄色网络 | 日本三级全黄 | 少妇4p|