------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一、include
1> 作用:拷贝右边文件的所有内容到#include所在的位置
2> 自定义的文件用"",系统自带的文件用<>
3> #include <stdio.h>的目的:拷贝printf函数的声明
#include<.stdio.h>是一个系统头文件。
#include<abc.txt>相当于把abc.txt文件中的所用内容以纯文本的方式拷贝到当前位置。
#include <stdio.h>
int main()
{
printf("哈哈哈\n");
//#include "haha/abc.txt"
#include "/Users/apple/Desktop/iOS课堂共享/0722课堂共享/0727/代码/include/haha/abc.txt"
return 0;
}
“”表示文件与.c文件处于同一路径,可以使用相对路径也可以使用绝对路径。左边有/的是绝对路径,没有/则为相对路径。
注意:自定义的文件使用“”,系统文件使用<>。
函数如果在调用时,函数定义在调用之后,且前面没有进行相应的声明,则编译器报错;
调用函数,没有函数声明,编译器不会报错,链接时报错,不定义函数反而不报错。
链接:把项目中所以相关的.o目标文件和c语言的函数库合并在一起,生成可执行文件。
通常:
①. 函数的定义放在.c文件中,函数的声明放在.h文件中
②. 如果要是有某个.c文件中定义的函数,只需要包含.c文件对应的.h文件即可
③. .h文件生下来就是打酱油被别人拿来拷贝包含的,编译链接时不用写出
二、多文件开发
多文件开发的程序体现:
1、首先定义一个李四.h文件
/*
李四
编写函数的声明
*/
int average(int a, int b);
int sum(int a, int b);
int minus(int a, int b);
int multiply(int a, int b);
2、然后定义李四.c文件
/*
李四
编写基本算数运算的函数
*/
int average(int a, int b)
{
return (a + b)/2;
}
int sum(int a, int b)
{
return a + b;
}
int minus(int a, int b)
{
return a - b;
}
int multiply(int a, int b)
{
return a * b;
}
3、最后定义张三.c
/*
张三
编写main函数
链接:把项目中所有相关联的.o目标文件、C语言函数库合并在一起,生成可执行文件
*/
#include <stdio.h>
#include "李四.h"
int main()
{
int score1 = 100;
int score2 = 70;
int c = average(score1, score2);
int d = sum(score1, score2);
printf("平均分是%d\n", c);
printf("总分是%d\n", d);
// \n 是一个转义字符
// \t tab键
// \" 一个双引号
// printf函数返回的字符串常量的字符数,并不是字数
// 1个汉字占据3个字符
int e = printf("哈h\"\ta\n");
printf("e=%d\n", e);
return 0;
}
程序讲解:
1.函数的定义放.c文件,函数的声明放.h文件
2.如果要使用某个.c文件中定义的函数,只需要#include这个.c文件对应的.h文件
3..h文件的作用:被别人拷贝。编译链接的时候不需要管.h文件
4.cc xx.o xxx.o 将多个目标文件链接在一起
cc xx.c xxx.c 将多个源文件编译、链接
三、补充
(1)main函数的返回值是返回给操作系统的,0为正常退出,其他值为非正常退出。用以进行系统日志,其实它返回任何值对程序本身没有影响,仅仅只是标记
(2)Printf函数的返回值为字符数。如printf(“abc”);则返回值为3,若printf(“abc男\n”);的返回值为7,因为一个中文占3个字符
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------