9、黑马程序员-C语言inclue和多文件开发

------<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>、期待与您交流! -------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值