• 多文件编程(day13)


    多文件编程时一个文件里可以包含多个函数,
        一个函数只能属于一个文件
    
    多文件编程的步骤
    1.把所有函数分散在多个不同的源文件里
        (主函数通常单独占一个文件)
    2.为每个源文件编写一个配对的以.h作为
        扩展名的头文件(主函数所在的源文件
        不需要配对的头文件).不分配内存的内容
        都可以写在头文件里,头文件里至少要
        包含配对源文件里所有函数的声明。
    3.在所有源文件里使用#include预处理指令
        包含需要的头文件(配对头文件是一种
        需要的头文件,如果源文件里使用了
        头文件里声明的函数则这个头文件也是
        需要的头文件)
    
    在gcc命令后列出所有源文件的路径就可以编译
        多文件程序
    
    可以把多文件程序的编译过程记录在Makefile
       文件里,然后使用make工具完成编译过程
    
    头文件的内容应该包含在条件编译的预处理
       指令中,这样可以避免重复编译
    头文件里第一条预处理指令应该是#ifndef
    
    头文件里采用的宏名称应该是根据头文件的
        路径变化得到的
    
    从一个源文件里使用另外一个源文件里声明的
       全局变量时需要使用extern关键字再次声明
       这个全局变量
    
    使用extern关键字声明变量的语句通常应该放在
        头文件里
    
    不可以跨文件使用静态全局变量
    
    C语言里可以在一个存储区里记录多个相关
       数字
    这种存储区的类型叫结构体,这种类型需要
        编写程序创建出来
    结构体存储区里包含多个子存储区,每个子
        存储区可以记录一个数字
    结构体的不同子存储区类型可以不同,子存储区
        类型也可以是结构体类型
    结构体声明语句可以用来创建结构体类型
    结构体声明语句里需要使用struct关键字
    
    结构体声明语句里包含多个变量声明语句,它们
        叫做结构体的成员变量。每个成员变量
        代表一个子存储区。
    所有成员变量声明语句都没有分配存储区,
        它们只是用来代表子存储区的类型和名称
    C语言里结构体不可以包含函数
    结构体声明语句可以写在头文件里
    可以把结构体作为类型声明变量,这种变量
        叫结构体变量
    把结构体作为类型的时候需要把struct关键字
       和结构体名称一起作为类型名称使用
    结构体变量被分配了内存,可以用来记录数字
    
    typedef关键字可以给现有的类型名称起别名,
       别名可以代替原来的类型名称使用
    结构体类型通常需要起别名
    
    可以把声明结构体类型的语句和起别名的语句
       合并成一条语句
    这个时候可以省略结构体本身的名称
    
    结构体变量也应该初始化
    结构体变量的初始化方法和数组的初始化
       方法一样
    
    结构体变量通常不能作为整体使用,一般
        一次只使用其中的某个子存储区
    可以采用如下写法表示结构体的某个子存储区
    prsn.age
    其中prsn是结构体变量名称,age是某个
        成员变量的名称
    
    同类型的结构体变量之间可以直接赋值
    
    和结构体存储区捆绑的指针叫结构体指针
    可以采用如下写法通过结构体指针表示结构体
        的子存储区
    p_person->age
    其中p_person代表一个已经捆绑好的结构体指针,
        age代表成员变量名称
    
    结构体类型的形式参数可以从调用函数向被调用
        函数传递结构体数据
    使用结构体类型的形式参数有可能造成时间
        和空间的浪费
    采用结构体指针作为形式参数可以避免这种
        浪费
    结构体指针形式参数尽量用const关键字声明
    
    可以使用结构体变量做返回值从被调用函数
        向调用函数传递数据
    这个时候被调用函数就需要提供一个结构体
        类型的存储区用来存放返回值
    这更容易造成时间和空间的浪费
    采用结构体存储区的地址做返回值可以避免
        这种浪费(这个时候被调用函数需要
        提供一个结构体指针类型的存储区
        用来存放返回值)
    不可以把非静态局部结构体存储区的地址
        当返回值使用
  • 相关阅读:
    2021年通达信指标公式大全,值得收藏!
    网络兼职?威客?为什么我会觉得网络兼职,威客会是人生中应该具备的一种能力!
    SeMusic 音乐网站源代码,PHP音乐系统,人人都是站长人人都可副业创业!
    JavaScript 查看图片,带缩放放大效果
    JS (javascript) 计算循环当前时间,javascript 时间钟表
    关键词被冷藏?关键词没排名?任务网站长们该何去何从?
    关键词任务网被K,对于任务网该何去何从?我认为任务网存活只有一条出路!
    C3属性的轮播图(持续更新)
    自己写的文字轮播(简陋版)
    带锁的3D切割轮播图
  • 原文地址:https://www.cnblogs.com/Kernel001/p/7735184.html
Copyright © 2020-2023  润新知