欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中的頭文件與Extern(外部函數(shù)調(diào)用)方式

 更新時(shí)間:2023年08月02日 09:49:15   作者:Kylee?Brady  
這篇文章主要介紹了C++中的頭文件與Extern(外部函數(shù)調(diào)用)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

C++頭文件與Extern(外部函數(shù)調(diào)用)

⒈ 頭文件引用

⒉ extern調(diào)用同一個(gè)項(xiàng)目中的其他cpp文件中的函數(shù)

?【 main.cpp 】 

#include"day0915_3.h"
extern void func_1();
void func_2(){
	cout << "Hello" << endl;
}
int main(){
//	void (*x)();
//	x = func_1;
//	x();
	int a = 99;
	int *p = &a;
	cout << *p**p <<endl;
	cout << func_h() << endl;
	system("pause");
	func_1();
	return 0;
}

?【 day0915_3.h 】

#ifndef 條件編譯,防止頭文件被多次包含

#ifndef __DAY0915_3_H__
#define __DAY0915_3_H__
#include"iostream"
using namespace std;
int func_h();
#endif

?【 day0915_3.cpp 】

#include <iostream>
using namespace std;
int func_h(){
	return 999;
}
void func_1(){
	cout << "hello,world!" << endl;
}

通過(guò)extern和頭文件來(lái)引用函數(shù),有啥區(qū)別 ?

1、extern 應(yīng)用于全局變量,函數(shù)或模板聲明

說(shuō)明該符號(hào)具有外部鏈接 (external linkage) 屬性(這個(gè)符號(hào)在別處定義)。

2、變量可以聲明多次,但只能定義一次

在程序中變量可以聲明多次,但只能定義一次。

一般而言,定義就是聲明。

但 C++ 中由于 extern 的緣故,變量的聲明和定義是可以分開(kāi)的。

凡是沒(méi)有帶 extern 的聲明同時(shí)也都是定義。

而對(duì)函數(shù)而言,帶有{}是定義,否則是聲明。

int i; ? ? ? ? ? ? ? ?//聲明并定義i
int j = 1; ? ? ? ? ? ?//聲明并定義j
double max(double d1,double d2){} //函數(shù)定義
extern double max(double d1,double d2); ?//函數(shù)聲明

如果想聲明一個(gè)變量而非定義它,

就在變量名前添加關(guān)鍵字 extern,且不要顯式的初始化變量。

extern int i; ? ? ? ? ?//聲明i而非定義
extern int j = 2; ? ? ?//錯(cuò)誤,定義j而非聲明,會(huì)報(bào)錯(cuò),多重定義
int j; ? ? ? ? ? ? ? ? //錯(cuò)誤,重定義,注意這里的j是在全局范圍內(nèi)聲明

3、變量的聲明

當(dāng)鏈接器在一個(gè)全局變量聲明前看到 extern 關(guān)鍵字,

它會(huì)嘗試在其他文件中尋找這個(gè)變量的定義;

可以在頭文件中聲明一個(gè)變量,

在用的時(shí)候包含這個(gè)頭文件就相當(dāng)于聲明了這個(gè)變量。

4、使用 extern 和包含頭文件來(lái)引用函數(shù)有什么區(qū)別呢?

與 include 相比,extern 的引用方式比包含頭文件要更簡(jiǎn)潔:

extern 引用另一個(gè)文件的范圍小,想引用哪個(gè)函數(shù)就用 extern 聲明哪個(gè)函數(shù);

而 include 可以引用另一個(gè)文件的全部?jī)?nèi)容。

這樣做的一個(gè)明顯的好處是,

會(huì)提高程序編譯(預(yù)處理)效率,節(jié)省時(shí)間。

在大型 C++ 程序編譯過(guò)程中,這種差異是非常明顯的。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語(yǔ)言?棧與數(shù)組的實(shí)現(xiàn)詳解

    C語(yǔ)言?棧與數(shù)組的實(shí)現(xiàn)詳解

    棧(stack)又名堆棧,它是一種運(yùn)算受限的線(xiàn)性表。限定僅在表尾進(jìn)行插入和刪除操作的線(xiàn)性表。這一端被稱(chēng)為棧頂,相對(duì)地,把另一端稱(chēng)為棧底。向一個(gè)棧插入新元素又稱(chēng)作進(jìn)棧、入?;驂簵?,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素
    2022-04-04
  • C++基于EasyX庫(kù)實(shí)現(xiàn)拼圖小游戲

    C++基于EasyX庫(kù)實(shí)現(xiàn)拼圖小游戲

    這篇文章主要為大家詳細(xì)介紹了C++基于EasyX庫(kù)實(shí)現(xiàn)拼圖小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C語(yǔ)言實(shí)現(xiàn)數(shù)獨(dú)輔助器(附源碼)

    C語(yǔ)言實(shí)現(xiàn)數(shù)獨(dú)輔助器(附源碼)

    數(shù)獨(dú)是源自瑞士的一種數(shù)學(xué)游戲。是一種運(yùn)用紙、筆進(jìn)行演算的邏輯游戲。本文將利用C語(yǔ)言制作一個(gè)數(shù)獨(dú)輔助器,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-01-01
  • C++使用泛型導(dǎo)致的膨脹問(wèn)題

    C++使用泛型導(dǎo)致的膨脹問(wèn)題

    這篇文章主要介紹了C++使用泛型導(dǎo)致的膨脹,智能家居主機(jī)的嵌入式平臺(tái)上使用C++進(jìn)行開(kāi)發(fā)。FLASH存儲(chǔ)空間有限,這是必須要考慮的因素,一定要重視,下面我們一起進(jìn)入文章看看詳細(xì)內(nèi)容
    2021-11-11
  • C語(yǔ)言大小端字節(jié)序存儲(chǔ)模式深入解讀

    C語(yǔ)言大小端字節(jié)序存儲(chǔ)模式深入解讀

    我們知道,當(dāng)編譯器執(zhí)行 “創(chuàng)建變量” 這一代碼時(shí),會(huì)在內(nèi)存中開(kāi)辟空間相應(yīng)的空間來(lái)存儲(chǔ)變量值。而對(duì)于整型變量而言,變量值又是以二進(jìn)制補(bǔ)碼的形式存放的
    2022-09-09
  • VC6.0常見(jiàn)編譯錯(cuò)誤提示附解決方法

    VC6.0常見(jiàn)編譯錯(cuò)誤提示附解決方法

    這篇文章主要介紹了VC++6.0編譯過(guò)程中常遇到的一些錯(cuò)誤提示并給出了錯(cuò)誤原因與分析,需要的朋友尅參考下
    2013-07-07
  • C語(yǔ)言之malloc動(dòng)態(tài)分配內(nèi)存和free釋放

    C語(yǔ)言之malloc動(dòng)態(tài)分配內(nèi)存和free釋放

    這篇文章主要介紹了C語(yǔ)言之malloc動(dòng)態(tài)分配內(nèi)存和free釋放,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)二叉樹(shù)先序、中序、后序及層次四種遍歷

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)二叉樹(shù)先序、中序、后序及層次四種遍歷

    這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)二叉樹(shù)先序、中序、后序及層次四種遍歷方式,具有一定的知識(shí)性參考價(jià)值,需要的小伙伴可以先看一下
    2022-02-02
  • APUE筆記之:進(jìn)程環(huán)境詳解

    APUE筆記之:進(jìn)程環(huán)境詳解

    本篇文章是對(duì)APUE 進(jìn)程環(huán)境詳解進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • socket編程的詳細(xì)講解

    socket編程的詳細(xì)講解

    本文詳細(xì)講解了socket編程,它是網(wǎng)絡(luò)中經(jīng)常使用的一門(mén)技術(shù),該文章通過(guò)大量的代碼來(lái)解釋?zhuān)蠹铱梢詤⒖紖⒖?/div> 2021-08-08

最新評(píng)論