C語言函數(shù)調(diào)用的三種實現(xiàn)方法實例
C語言函數(shù)
1.概念:函數(shù)是一組一起執(zhí)行一個任務(wù)的語句,每個c程序都必須有一個main函數(shù),程序員可以把代碼劃分到不同的函數(shù)當(dāng)中去,在邏輯上,劃分通常是根據(jù)每個函數(shù)執(zhí)行一個特定的任務(wù)來進(jìn)行的。c標(biāo)準(zhǔn)庫提供了可以大量調(diào)用的庫函數(shù),比如,printf,strcmp等。
2.函數(shù)的定義
c語言中函數(shù)的一般定義如下:
return_type Function_name(Parameter List) { The function body }
定義函數(shù)時會定義這個函數(shù)要做什么,然后通過調(diào)用該函數(shù)來完成定義的任務(wù)。當(dāng)程序調(diào)用函數(shù)時,程序控制權(quán)會轉(zhuǎn)移給被調(diào)用的函數(shù)。被調(diào)用的函數(shù)執(zhí)行已定義的任務(wù),當(dāng)函數(shù)的返回語句被執(zhí)行時,或到達(dá)函數(shù)的結(jié)束括號時,會把程序控制權(quán)交還給主程序。下面是具體調(diào)用函數(shù)的例子:
第一種方法
在一個.c文件里面進(jìn)行子函數(shù)調(diào)用
step1:函數(shù)聲明
step2:mian函數(shù)
step3:子函數(shù)
/******************************** 數(shù)組元素之和 法一: 子函數(shù)調(diào)用 **********************************/ #include<stdio.h> #define M 10 // 數(shù)組元素個數(shù) int num[M]={1,2,3,4,5,6,7,8,9,10}; /******************************** 函數(shù)聲明 **********************************/ int sum(int * start, int * end); /******************************** main函數(shù) **********************************/ int main(void) { long answer; answer=sum(num,num+M); printf("The total number is %ld.\n",answer); return 0; } /******************************** 子函數(shù) **********************************/ int sum(int * i, int * end) { int total=0; while(i<end) { total+=*i;// 把數(shù)組元素的值加起來 i++; // 讓指針指向下一個元素 } return total; }
第二種方法
調(diào)用外部的C文件
main函數(shù)
/******************************** 數(shù)組元素之和 不需要.h文件,直接調(diào)用外部函數(shù)的方法 **********************************/ #include<stdio.h> #include "D:\mwq\LAB\z7\ARM\VC\extern_get_c_file_v2\sum.c"http://調(diào)用外部函數(shù) 路徑+外部函數(shù)名 #define M 10 // 數(shù)組元素個數(shù) int num[M]={1,2,3,4,5,6,7,8,9,10}; /******************************** main函數(shù) **********************************/ int main(void) { long answer; answer=sum(num,num+M);//調(diào)用求和函數(shù) printf("The total number is %d.\n",answer); return 0; }
子函數(shù)
#include<stdio.h> /******************************** 函數(shù)功能:求和 輸入?yún)?shù):素組的首尾地址 輸出參數(shù):素組所有元素之和 **********************************/ int sum(int * i, int * end) { int total=0; while(i<end) { total+=*i;// 把數(shù)組元素的值加起來 i++; // 讓指針指向下一個元素 } return total; }
第三種方法
注:這種方法的實現(xiàn)平臺為SDK,但思想一樣。
一個main.c 。
子函數(shù)源文件用sum.c 表示;子函數(shù)頭文件用 sum.h表示。
有幾個子函數(shù)就有幾個sum.c 和 sum.h
主函數(shù)
#include <stdio.h> #include "platform.h" #include "xil_printf.h" #include "sleep.h" #include "sum.h" #define M 10 int answer; int main() { init_platform(); print("Hello World\n\r"); print("you are my book\n\r"); answer=sum(M);//調(diào)用求和函數(shù) printf("The total number is %d.\n",answer); cleanup_platform(); return 0; }
子函數(shù)源文件
#include<stdio.h> #include"sum.h" /******************************** 函數(shù)功能:求和 輸入?yún)?shù):素組的首尾地址 輸出參數(shù):素組所有元素之和 **********************************/ int sum(int N) { int i; int total=0; for(i=0;i<=N;i++) { total=total+i;// 把數(shù)組元素的值加起來 } return total; }
子函數(shù)頭文件
#ifndef SUM_H #define SUM_H int sum(int N);// 子函數(shù) #endif
結(jié)果
總結(jié)
到此這篇關(guān)于C語言函數(shù)調(diào)用的三種實現(xiàn)方法的文章就介紹到這了,更多相關(guān)C語言函數(shù)調(diào)用方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++?TCP網(wǎng)絡(luò)編程詳細(xì)講解
TCP/IP是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,它會保證數(shù)據(jù)不丟包、不亂序。TCP全名是Transmission?Control?Protocol,它是位于網(wǎng)絡(luò)OSI模型中的第四層2022-09-09淺談C++中thread庫join和detach的區(qū)別
這篇文章主要為大家介紹了C++中thread庫join和detach的區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-11-11C語言數(shù)據(jù)結(jié)構(gòu)算法之實現(xiàn)快速傅立葉變換
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)算法之實現(xiàn)快速傅立葉變換的相關(guān)資料,需要的朋友可以參考下2017-06-06C++實現(xiàn)LeetCode(141.單鏈表中的環(huán))
這篇文章主要介紹了C++實現(xiàn)LeetCode(141.單鏈表中的環(huán)),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07詳解C++設(shè)計模式編程中策略模式的優(yōu)缺點及實現(xiàn)
這篇文章主要介紹了C++設(shè)計模式編程中策略模式的優(yōu)缺點及實現(xiàn),文中討論了策略模式中設(shè)計抽象接口的繼承和組合之間的區(qū)別,需要的朋友可以參考下2016-03-03VSCode 搭建 Arm 遠(yuǎn)程調(diào)試環(huán)境的步驟詳解
這篇文章主要介紹了VSCode 搭建 Arm 遠(yuǎn)程調(diào)試環(huán)境的步驟詳解,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04