joseph1994
// 定义max.c源文件,以下是文件内容
int max(int a, int b) {
return a > b ? a : b;
}
// 定义max.h头文件,文件内容
int max(int, int);
// 在main函数所在文件中,要加入#include "max.h",而且要和main文件在一个文件夹内
// 编译文件gcc -c max.c -o max.o
// 生成最终文件gcc max.o main.c -o main.out
// main.c就是包含main函数的文件,可以根据自己命名文件来修改
// 讲课视频中不出现编译问题,就是因为编译器不同造成的
慕的地2546297
慕沐3447294
一个c文件对应一个可执行文件即.out文件。要想2个c文件对应一个可执行文件,那么主函数中必须有调用另一个文件的指令。
慕斯卡2483961
隐匿的墨丘利
没有特别说明的时候编译出来的文件名是a.out,可以通过“-o hello.out”说明文件名
weixin_慕前端2092959
版本问题。报错后你运行./a.out程序还是能成功运行的
WUYONGHAO
int max(int a, int b)编译了两次,
whopperNuolan
u撤销
weixin_慕沐6305626
gcc版本太低的原因,接下去的视频会讲,需要声明一下
weixin_慕沐6305626
帅D
找不到方法max 有引入max.c吗
mengxuanmenghui
如果main函数中声明了max和min的话,gcc就不用再传这两个文件了。如何让gcc max.c min.c main.c - o main.out不产生warning呢?
神奇阿肖
vim是文本编辑器,语法高亮,自动缩进,非常强大!
nano相当于notepad,没有vim强大
宝慕林4364177
一、#include <stdio.h>
int main()
{
int a,b;
printf("请输入小于等于40的数字");
scanf("%d",&a);
if(a < 0)
b = 0;
else if(a >= 0 && a < 20)
b = a;
else if(a >= 20 && a <= 40)
b = -0.5*a+20;
printf("%d\n",b);
}
二、
#include <stdio.h>
int main()
{
int a, b;
printf("请输入小于等于40的数字");
scanf("%d",&a);
switch(a)
{
case 0:
b = 0;
break;
case 1 ... 19:
b = a;
break;
case 20 ... 40:
b = -0.5 * a + 20;
break;
default:
printf("结束");
}
printf("%d\n",b);
}
注:switch的不是很严谨!!
迷幻电子狗
1、重复编译了max是因为你在main函数里面include"max.c",这个include的意思就是将max.c里面的代码复制过来了,那么你再gcc hello.c max.c就会出现重复定义了,所以你只要把#include"max.c"这一行代码注释掉或者gcc hello.c就好了
2、-o main.out就是给生成的可执行文件命名为main.out,如果没有这句话,那么默认的可执行文件名为a.out
InkYHc799
???你去上网搜一个ubuntu麒麟版 下载 。然后再在网上上找一个破解版的vmware station 就行了
qq_无名小卒_4

这是我写的
qq_无名小卒_4
不要直接gcc max.c hello.c 先编译一下max.c编程max.o 然后gcc max.o hello.c
洪金俊
先Esc到命令窗口再冒号(:)wqa
qq_成日色_0
结果如上图所示
阿科牛
不是#include "max.o",应该#include "max.h"
朔望月
原来要进入命令模式啊。。。
qq_抱着盒子的姑娘_0
在hello.c中加了#include "max.c" 以后,仅相当于把max.c里面的代码粘贴放到那里了,所以在外面用gcc编译的时候:gcc hello.c 就已经包含了max.c的内容,如果输入:gcc hello.c max.c 就相当于有两段max.c里面的代码,会报重复的错误
qq_MrQ_6
if(a.b)操作符有问题。'.':是点操作符,不能用在int类型之间。另外虽然只是warning,但应该知道你的两个变量都没有定义类型,C是强类型语言,需要先定义类型。
lovePhper
sudo yum install gcc
azureks
在main函数之前添加max函数声明,#include“max.c”,可能所用vim版本不够智能。
azureks
应该光标在行首
Allen_Qiu
播放器右下角设置里改成HTML播放器。。100倍不会改。。
慕粉0026395100
你自行补全插件下载了没有呢,你下载把自动补全插件下载了加入VIM中,应该就可以了
qq_小飞仔GXF_0
关于这个问题,有大神指导吗?