轉載:c語言 頭文件可以定義的函數嗎_C語言—函數(function)函數定義、函數聲明、函數調用!..._weixin_39900180的博客-CSDN博客
函數
作用:提高代碼復用率,提高程序模塊組織性。
分類:系統庫函數,標准C庫 ·libc
1):必須要引入頭文件#include函數聲明
2):根據函數庫函數原型,調用函數
用戶自定義函數
bubble_sort() , ruprint(),除了需要提供函數原型之外,還需要提供函數實現。
使用函數:函數定義、函數聲明、函數調用
函數定義:函數定義必須包含“函數原型”和函數體。
函數原型:返回值類型 + 函數名 + 形參列表
形參列表:形式參數列表,一定包含類型名、形參名。
//加法函數int add(int a, int b)函數體:一對{}包裹函數實現int add(int a , nit b){ int ret = a + b; return 0;}
函數調用:包含函數名(實參列表)
實參:(實際參數)在調用時,傳參必須嚴格按照形參填充,(參數個數,類型順序)實現在調用時,沒有類型指述符。
int m = 20;int n = 34;inr ret = add(m, n);
函數聲明:包含函數原型(返回值類型 + 函數名 + 形參列表)
int add(int a, int b);
要求在函數調用之前,編譯器必須是過函數定義,否則要求函數聲明。如果沒有函數聲明,編譯器默認“隱式聲明”,編譯器認為所有的函數,返回值都是int 可以根據函數調用,推斷函數原則。
#include內部,包含函數聲明。
exit 函數
return 關鍵字,返回值當前函數調用,將返回值返回調用者(在底層,會調用exit() 函數)。
exit () 函數 : 退出當前程序
函數聲明:
//int test(int a, char ch);int test(int, char); //函數聲明的簡化寫,聲明時形參可以省略
//函數調用int main(void){ int ret = test(10, 'a'); //test函數調用結束,return 給 main printf("test函數返回:ret = %d\n", ret); //return 0; //返回給調用者(啟動例程) exit(0); //結束程序}
//函數定義int test(int a, char ch);{ printf("a = %d\n", a); printf("ch = %d\n", ch); exit(97); //使用#include(stdib.h)}
多文件編程
解決方案—右鍵—添加—新建項目
多文件—右鍵—設為啟動項目
頭文件守衛:為了防止頭文件被重復包含
1):#pragma Once是VS自動生成的,只應用於windows系統
2):#ifndef HEAD_H
#define HEAD_H
頭文件內容:#include
//宏定義:#define PI 3.14
函數聲明:類型定義:#endif
#ifndef _HEAD_H_ //標准引入頭文件#define _HEAD_H_//include 頭文件#include#include#include#include#include//函數聲明int add(int a, int b);int sub(int a, int b);//宏定義#define PI 3.14
類型定義:#endif
< > 包裹的是系統庫頭文件
“ ” 包裹的是,用戶自定義頭文件
// main 函數所在的 C · 頭文件
#include " head.h";
▼往期精彩回顧▼
C語言—創建function並使用初始化arr
C語言—指針(pointer)and 內存單元使用!
C語言——數組的定義和初始化