栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

标准C语言10

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

标准C语言10

头文件中应该写什么:

    问题: 头文件可能被任何的源文件包含,意味着头文件的内容会在多个目标文件中存在,合并时要保证不能冲突

    重点: 头文件中只能编写声明语句,不能有定义语句

        声明语句:

            全局变量声明 extern int num;

            函数声明

            宏常量

            宏函数

            typedef 类型重定义

            结构、联合、枚举的类型声明

头文件的编写规则:

    1、为每个.c文件写一份.h文件, .h文件是对.c文件的说明

    2、如果需要使用某个.c文件中变量、函数、宏、结构体...,只需要把该.c文件的.h文件导入即可使用

    3、.c文件也需要导入它的.h文件,目的是为了声明与定义一致

头文件的相互包含:

    假如a.h包含了b.h的内容,b.h又包含a.h,这种情况就叫做头文件的相互包含,会导致编译错误

    判断: 

        当确认变量、函数名已经定义且导入,但是依然报错: 未定义xxxx

        先考虑是否文件卫士写错,再考虑是否是头文件相互包含

    解决方法:

        从a.h中把需要用到的b.h内容提取出来,从b.h中把需要用到的a.h内容提取出来,放入新编写的c.h

Makefile

    Makefile是由一系列编译指令组成的可执行文本文件,也叫做编译脚本

    在终端执行make命令就会自动执行Makefile文件中的编译指令,它可以根据文件的修改时间来判断哪些文件需要编译,哪些文件不需要重新编译,根据依赖情况判断哪些文件先编译、哪些后编译,从而提高编译效率

    编译规则:

        1、如果这个项目没有编译过,则所有.c文件都要编译并被链接成可执行程序

        2、如果某几个.c文件被修改,则此次只编译修改过的.c文件并链接生成可执行文件

        3、如果某个.h文件被修改,依赖该头文件的所有.c文件全部重新编译并链接

    一个最简单的Makefile脚本:

        执行目标: 依赖文件 依赖标签 ...(中间用空格隔开)

            编译指令(前面一定要加tab)

        被依赖的目标1: 依赖的文件

            编译指令

        被依赖的目标2: 依赖的文件

            编译指令

        被依赖的目标3: 依赖的文件

            编译指令

        ...

        clean:

            rm: ...

        edit : main.o kbd.o command.o display.o 

                insert.o search.o files.o utils.o

            cc -o edit main.o kbd.o command.o display.o 

                insert.o search.o files.o utils.o

        main.o : main.c defs.h

            cc -c main.c

        ...

        clean :

            rm edit main.o kbd.o command.o display.o 

                insert.o search.o files.o utils.o

            BOJ = .o .o .o ...

            $(OBJ)

            STD = -std=gnu99

            $(STD)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347783.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号