转载: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
", ret); //return 0; //返回给调用者(启动例程) exit(0); //结束程序}
//函数定义int test(int a, char ch);{ printf("a = %d
", a); printf("ch = %d
", 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语言——数组的定义和初始化