Visual Studio C++多文件编译
https://www.bilibili.com/video/BV1AD4y1S7dn/?spm_id_from=333.337.search-card.all.click&vd_source=7963e4096d2b51e52877519dc0202e3e
学习链接
自然而然的演变过程
一个main()函数-----------过大
演变为:
一个main()函数+多个自定义函数-----------自定义函数太多了
演变为:
现在:一个main().cpp+多个.h+多个对应的.cpp文件
头文件、库文件、main文件
头文件:要求把函数原型放进该头文件里!需要包含这个函数的源文件都要#include 这个头文件(也就是说使用和定义函数的地方,即main.cpp和相同名字的.cpp)。
#include<头文件>还是#include"头文件"呢?
自定义的头文件首选" ",因为< >只在指定的目录去找," "先去当前目录去找,找不到才去指定的目录找。
.h文件只写函数原型声明,不写函数的定义。函数定义放在相同名字的.cpp文件。
.cpp文件放函数的具体实现。
任何.cpp都有对应的同名的.h文件,.h文件要把函数原型和全局变量的声明放进去
标准头文件:
如:
#ifndef __MAX_H__ //__是为了区别#define宏。
#define __MAX_H__
int max(int a; int b);
#endif
注意事项
注意:具体实现的.cpp文件里面记得写注释,这样方便以后查看,鼠标点到该函数,就会有提示。
注意:Ctrl +A,K,F 即按住ctrl,相继按下A、K、F,会选中全部,对代码自动排版。
注意:我用scanf()不能输入,一直报错,只能使用scanf_s,原来是因为进行了安全检查。为了继续使用scanf(),必须先把在项目属性中关闭SDL检查(项目-属性-C/C+±sdl-否),不关的话会导致一些库用不了,会报错!
示例
max.h
#ifndef __MAX_H__
#define __MAX_H__
int max(int a, int b); //不要少写分号;
#endif // !__MAX_H__
max.cpp
#include"max.h"
/*
* max--给定两个数,返回较大的一个
* 参数:a,b:代表两个数
* 返回值:较大的那个
*/
int max(int a, int b)
{
if (a < b) //不要少些括号()
return b;
else
return a;
}
main.cpp
#include<stdio.h>
#include"max.h"
int main()
{
int a, b;
scanf("%d%d", &a, &b); //记得写双引号,后面变量用逗号隔开
printf("%d is bigger", max(a, b));
return 0; //必须写return
}
运行main.cpp文件
输入:1 2
输出:2 is bigger