#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include "add.h"
#include "sub.h"
//----------------------------------------------------------------------------------------------------6. 函数的声明和定义
//-----------------------------------------------------------------------------------------------6.1 函数的声明
/*
1.告诉编译器有一个函数叫什么,参数类型是什么,返回类型是什么。但是具体是不是存在,函数声明决定不了。
2.函数的声明一般出现在函数的使用之前。要满足先声明后使用。
3.函数的声明一般要放在头文件中的。
*/
//-----------------------------------------------------------------------------------------------6.2 函数的定义
//函数的定义是指函数的具体实现, 交待函数的功能实现
---------------------------------函数的声明
// int Sub(int x, int y); //(放到add.h,在前边调用一下头文件 add.h)
// int Add(int x, int y); //(放到sub.h,在前边调用一下头文件 sub.h)
int Add(int , int ); //两者都可
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int sum = Add(a, b);
printf("%d\n", sum);
int ret = Sub(a, b);
printf("%d\n", ret);
return 0;
}
--------------------------------函数的定义(放到add.c)
//int Add(int x, int y) //(放到add.c)
//{
// return x + y;
//}
//int Sub(int x, int y) //(放到sub.c)
//{
// return x - y;
//}
//函数定义到后边会警告:Add未定义
//可以在前边进行一下声明
// 把一个模块(加法函数模块)拆成 一个头文件(add.h 函数的声明),一个源文件(add.c 函数的定义),到底有啥好处?????????
// 包含头文件(#include "add.h")的意义 本质是把这个头文件的内容拷贝过来,从而实现函数声明的效果
//------------------------------------ add.h
#pragma once
//防止头文件被重复包含
// 加法 函数的声明
int Add(int x, int y);
//------------------------------------ add.c
// 函数的定义
int Add(int x, int y)
{
return x + y;
}
//------------------------------------ sub.h
#pragma once
//防止头文件被重复包含
// 减法 函数的声明
int Sub(int x, int y);
//------------------------------------ sub.c
// 减法函数的定义
int Sub(int x, int y)
{
return x - y;
}