一、函数基础
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//函数以及作用:
//函数:函数就是将原来在main函数中的代码换一个位置,存放在另一个函数中(存代码块的东西就是函数)
//函数的作用:
//1.为了减少重复的代码块 2.代码模块清晰
//函数定义形式
//函数定义的一般形式:
//返回类型 函数名(形参列表)
//{
// 数据定义部分
// 执行语句部分
//}
//注意!!形参列表中的变量不能赋值!!
//注意!!函数的定义不能定义在函数的代码块里,必须在函数外面定义函数
//无参无返回值的函数,或者无返回值的函数在函数体中编写打印函数和从键盘读取函数时,在主函数调用后,会正常打印,但输入的值不会保存
//但是在无返回值函数中进行变量数值变换的操作时,实参的值不会发生改变。
void fun()
{
int a;
printf("hello\n");
printf("world\n");
std::cout << "牛逼" << std::endl;
std::cin >> a;
std::cout << a << std::endl;
return;
}
//有参无返回值函数的定义与调用
//定义一个有参无返回值函数
//函数定义时()里面的参数叫做形参,(形参只是形式上的参数,定义函数时没有给形参开辟内存空间)
//形参与实参之间时“值传递”!!!
//所有自定义类型的函数中使用打印或者输入函数,在主函数调用的时候都会正常运行!!!!
void fun2(int a, int b)
{
int c = 0;
c = a + b;
std::cout << c << std::endl;
}
//有参有返回值函数的定义与调用
int fun3(int a, int b)
{
return(a + b);
}
//函数返回值小于4字节,存寄存器中,如果大于4字节存内存中
int main01()
{
using namespace std;
void fun();//声明函数
void fun2(int, int);//声明函数
int fun3(int, int);
fun();
fun2(2, 3);
//调用函数时,()里面的参数叫做实参
//函数调用有参函数时,不可以不传参
//实参类型和形参类型必须一致
//函数调用时,实参的个数应该和形参的个数一致
//实参不一定是变量,常量也可以作为实参,表达式也可以作为实参,只要与函数形参类型保持一直就可以
int a = 1, b = 2;
int c;
fun2(a, b);
//cout << a << endl; 会报错,因为没有在主函数定义a,而且形参在内存中是临时存储的,调用完成后就会释放
fun3(a, b);
//调用有返回值函数时,可以不接返回值
c = fun3(a, b);
//接收返回值的变量必须与函数返回值类型一致
//参数的传递,只能时单向传递(实参-->形参)
system("pause");
return (0);
}
//return和exit函数的区别
//return 结束当前所在的函数 如果return在子函数中调用,只会结束子函数, 如果return在主函数中,会结束整个程序
//exit 是一个库函数,用来结束整个程序,
//不管exit在哪里调用,都会结束整个程序
//exit(0);
二、多文件编程
1. 头文件-my_math.h
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include"my_math.h"
int main()
{
using namespace std;
int a = 10;
int b = 20;
//最大值
cout << my_max(a, b) << endl;
//最小值
cout << my_min(a, b) << endl;
//求和
cout << my_sum(a, b) << endl;
//求差
cout << my_sub(a, b) << endl;
//求商
cout << my_div(a, b) << endl;
system("pause");
return (0);
}
2. 函数功能实现.cpp文件-mt_math.c
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int my_max(int a,int b)
{
return a > b ? a : b;
}
int my_min(int a, int b)
{
return a < b ? a : b;
}
int my_sum(int a, int b)
{
return a + b;
}
int my_sub(int a, int b)
{
return a - b;
}
int my_div(int a, int b)
{
return a / b;
}
3. 主函数文件-main.c
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include"my_math.h"
int main()
{
using namespace std;
int a = 10;
int b = 20;
//最大值
cout << my_max(a, b) << endl;
//最小值
cout << my_min(a, b) << endl;
//求和
cout << my_sum(a, b) << endl;
//求差
cout << my_sub(a, b) << endl;
//求商
cout << my_div(a, b) << endl;
system("pause");
return (0);
}