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

c++如何在主函數(shù)文件中調用其他函數(shù)文件

 更新時間:2023年08月02日 10:07:45   作者:Dust_Evc  
這篇文章主要介紹了c++如何在主函數(shù)文件中調用其他函數(shù)文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

c++在主函數(shù)文件中調用其他函數(shù)文件

方法介紹

可以把多個需要調用的子函數(shù)聲明在一個頭文件中。

具體是:

1. 函數(shù)的定義寫在源文件(A.cpp)

2. 把函數(shù)的聲明寫在頭文件(B.h)里(不必與源文件同名)

3. 在源文件(A.cpp)以及要使用這些函數(shù)的源文件中加入 #include  "B.h"

例如:

如果子函數(shù)引用了string,可以直接在頭文件中加上:

#include <string>
using namespace std;

這樣就不必在主文件中引用這些頭文件。

如果在頭文件中聲明和定義函數(shù),有兩種方法:

1、直接在頭文件中聲明和定義這些子函數(shù),然后在其它文件中引用頭文件,編譯時,需要加上相應頭文件;

2、在頭文件中聲明這些子函數(shù),然后在子函數(shù)的cpp文件中,寫這些子函數(shù)的定義,同時引用該頭文件,使用子函數(shù),只需在相應的cpp文件中引用相應頭文件即可,編譯時需要加上相應頭文件和cpp文件;

注意事項:

1、如果使用頭文件中聲明的子函數(shù),需要在相應的引用該頭文件的cpp文件開頭(引用頭文件之后),加上引用外部子函數(shù)的聲明:

extern int func1(int var1, string str1);
extern int func2(int var2, string str2);
......

2、為了防止頭文件重復調用出錯,需要在頭文件開頭和結束的地方加上防止重復調用的條件編譯開關:

#ifndef XXX_H
#define XXX_H
......
#endif

示例1

文件fu.cpp

#include "Funs.h" 
/*求兩個數(shù)的最大值函數(shù)*/
int max(int a, int b) 
{
	return a > b ? a : b;
}

文件Funs.h

#pragma once
#ifndef FUNS_H
#define FUNS_H
/*求兩個數(shù)的最大值函數(shù)*/
int max(int, int);
#endif

文件main.cpp

#include <stdio.h>
#include "Funs.h"  
int main() 
{
	int a = 12, b = 9;
	int c = max(a, 9);
	printf("%d和%d中的最大值為:%d\n", a, b, c);
	return 0;
}

示例2

寫個頭文件(a.h),對調用文件(fun.cpp)里的函數(shù)進行申明。

再將頭文件引在主函數(shù)所在的文件(main.cpp)里。

如下面所示:

文件fun.cpp

#include "Funs.h" 
int display(int a,int b)
{
    cout<<a+b<<endl;
    return 0;
}

文件a.h

#pragma once
#ifndef A_H
#define A_H
#include <iostream>
int display(int ,int );
#endif

文件main.cpp

#include "a.h"
int main()
{
    int a=2,b=3;
    display(a,b);
    return 0;
}

簡單寫幾行,使用非本源文件的函數(shù)就需要文件包含方式來包含其他文件,注意好頭文件別重復

示例3

鏈接:http://www.dbjr.com.cn/article/276187.htm

理解函數(shù)調用的過程

程序在內存中的占用

要學習C語言中函數(shù)調用的過程,必須要知道程序在內存中各個區(qū)域的分布。

C語言的函數(shù)調用的過程主要分布在棧中,所以我們今天主要研究棧。

幾個基本的匯編指令

call:

  • 將當前指令的下一條指令的地址保存到棧中。
  • 跳轉至目標函數(shù)的地址。

ret :

  • 彈出棧頂?shù)刂穼?shù)據(jù)放入eip
  • 從棧頂入棧稱為push
  • 從棧底出棧稱為pop

常用寄存器

在CPU中:讀取指令(內存-->CPU)-->分析指令(CPU)-->執(zhí)行指令(CPU)

1.  EAX:累積暫存器,EBX:基底暫存器,ECX:計數(shù)暫存器,EDX:資料暫存器

2. EIP(pc):程序計數(shù)器(用來存放當前正在執(zhí)行指令的下一條指令的地址)

3. ESP:棧頂

4. EBP:棧底

函數(shù)的調用與棧幀的創(chuàng)建銷毀

實例函數(shù):

轉換成匯編語言:

首先由_tmainCRTStartup調用main函數(shù),并在棧中創(chuàng)建了一個棧幀。

分別把a和b的值壓入棧中:

創(chuàng)建b,a臨時變量壓棧。

call指令保存當前指令下一條計數(shù)器的值,并跳轉到指定地址。

創(chuàng)建新的棧幀myadd

定義z,并計算a+b,并返回z的值到main中

將a+b的值賦給c。

到這里函數(shù)的調用就結束了。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Matlab實現(xiàn)三維投影繪制的示例代碼

    Matlab實現(xiàn)三維投影繪制的示例代碼

    這篇文章系小編為大家?guī)砹艘粋€三維投影繪制函數(shù)(三視圖繪制),函數(shù)支持三維曲線、曲面、三維多邊形、參數(shù)方程曲線、參數(shù)方程曲面的投影繪制,需要的可以參考一下
    2022-08-08
  • C++實現(xiàn)自底向上的歸并排序算法

    C++實現(xiàn)自底向上的歸并排序算法

    這篇文章主要介紹了C++實現(xiàn)自底向上的歸并排序算法,結合實例形式較為詳細的分析總結了自底向上的歸并排序算法的原理與具體實現(xiàn)技巧,需要的朋友可以參考下
    2015-12-12
  • 用C語言實現(xiàn)三子棋

    用C語言實現(xiàn)三子棋

    這篇文章主要為大家詳細介紹了用C語言實現(xiàn)三子棋,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C語言圖書管理系統(tǒng)實驗

    C語言圖書管理系統(tǒng)實驗

    這篇文章主要為大家詳細介紹了C語言圖書管理系統(tǒng)實驗,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++中的類擴展之繼承和組合詳解

    C++中的類擴展之繼承和組合詳解

    在C++中,類擴展可以通過繼承、組合和裝飾模式實現(xiàn)。繼承可以實現(xiàn)對已有類的修改和擴展,組合可以增加新的功能,裝飾模式則能夠在不改變原類的情況下為其添加新的功能。這些技術在C++程序設計中應用廣泛,提高了程序的可擴展性和可維護性
    2023-04-04
  • C++解決大數(shù)組棧內存不夠問題的方法分析

    C++解決大數(shù)組棧內存不夠問題的方法分析

    這篇文章主要介紹了C++解決大數(shù)組棧內存不夠問題的方法,結合實例形式對比分析了C++針對大數(shù)組棧內存不足情況的常見解決方法及其優(yōu)缺點,具有一定參考借鑒價值,需要的朋友可以參考下
    2018-05-05
  • C語言進階教程之循環(huán)語句缺陷詳析

    C語言進階教程之循環(huán)語句缺陷詳析

    循環(huán)語句是用于重復執(zhí)行某條語句(循環(huán)體)的語句,它包含一個控制表達式,每循環(huán)執(zhí)行一次都要對控制表達式進行判斷,如果表達式為真,則繼續(xù)執(zhí)行循環(huán),這篇文章主要給大家介紹了關于C語言進階教程之循環(huán)語句缺陷的相關資料,需要的朋友可以參考下
    2021-08-08
  • C語言實現(xiàn)循環(huán)隊列基本操作

    C語言實現(xiàn)循環(huán)隊列基本操作

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)循環(huán)隊列基本操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • C/C++獲取當前時間的方法總結(最全)

    C/C++獲取當前時間的方法總結(最全)

    這篇文章主要為大家整理了C/C++中獲取當前時間的最全方法,文中的示例代碼講解詳細,具有一定的學習和借鑒價值,需要的可以了解一下
    2023-03-03
  • 約瑟夫經典問題擴展成雙向約瑟夫問題

    約瑟夫經典問題擴展成雙向約瑟夫問題

    今天小編就為大家分享一篇關于約瑟夫經典問題擴展成雙向約瑟夫問題,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論