大程序

作者: 爱生活_更爱挺自己 | 来源:发表于2020-11-12 11:28 被阅读0次

大程序

多个.c文件

  • main()里的代码太长了适合分成几个函数
  • 一个源代码文件太长了适合分成几个文件
  • 两个独立的源代码文件不能编译形成可执行的程序
//main.c
#include<stdio.h>
int max(int a, int b);

int main(int argc, char const *argv[])
{
    int a = 5;
    int b = 6;
    printf("%d\n", max(a,b));
    
    return 0;
}
//max.c
int max(int a, int b)
{
    return a>b?a:b;
}
6

项目

  • 在Dev C++中新建一个项目,然后把几个源代码文件加进去
  • 对于项目,Dev C++的编译会把一个项目中的源代码文件都变异后,连接起来
  • 有的IDE有分开的编译和构建两个按钮,前者是对单个源代码编译,后者是对整个项目做连接

编译单元

  • 一个.c文件是一个编译单元
  • 编译器每次编译只处理一个编译单元

头文件

  • 把函数的原型放入到一个头文件(以.h结尾)中,在需要调用这个函数的源代码文件(.c文件)中#include这个头文件,就能让编译器在编译的时候知道函数的原型
//main.c
#include<stdio.h>
#include"max.h"

//int max(int a, int b);

int main(int argc, char const *argv[])
{
    int a = 5;
    int b = 6;
    printf("%d\n", max(a,b));
    
    return 0;
}
//max.c
#include"max.h"

int max(int a, int b)
{
    return a>b?a:b;
}
//max.h
int max(int a, int b);

#include

  • include是一个编译预处理指令,和宏一样,在编译之前就处理了

  • 它把那个文件的全部文本内容原封不动地插入到它所在的地方
    • 所以也不一定要在.c文件的最前面#include

“”还是<>

  • include有两种形式来指出要插入的文件

    • “”要求编译器首先在当前目录(.c文件所在的目录)寻找这个文件,如果没有,到编译器指定的目录去找
    • <>让编译器只在指定的目录去找
  • 编译器自己知道自己的表中库的头文件在哪里

  • 环境变量和编译器命令行参数也可以指定头文件的目录

#include的误区

  • include不是用来引入库的

  • stdio.h里只有printf的原型,printf的代码在另外的地方,某个.lib(windows)或**.a(Unix)中
  • 现在的C语言比一起默认会引入所有的标准库
  • include<stdio.h>只是为了让他编译器知道printf函数的原型,保证你调用时给出的参数值是正确的类型

头文件

  • 在使用和定义这个函数的地方都应该#include这个头文件
  • 一般的做法就是任何.c都有对应的同名的.h,把所有对外公开的函数的原型和全局变量的生命都放进去

不对外公开的函数

  • 在函数前面加static就使得它成为只能在所在的编译单元中被使用的函数
  • 在全局变量前面加上static就使得它成为只能在所在的编译单元中被使用的全局变量

相关文章

  • 大程序

    大程序 多个.c文件 main()里的代码太长了适合分成几个函数 一个源代码文件太长了适合分成几个文件 两个独立的...

  • 发力小程序,看“大嘴貔貅”如何走通社交电商之路?

    导读:近期,“小程序,大心意”,大嘴貔貅小程序正式发布。会上,大嘴貔貅创始人宣布:微信小程序携手大嘴貔貅,打造网络...

  • 排序与查找

    参考:程序员必知8大排序3大查找(一)程序员必知8大排序3大查找(二)程序员必知8大排序3大查找(三)图解排序算法...

  • 好程序员Web前端培训分享程序的三大结构

    好程序员Web前端培训分享程序的三大结构 程序的三大结构: 1.顺序结构 2.选择结构 3.循环结构 if(){}...

  • 干货 | 一次说透小程序的“四大特性、六大入口、两大核心场景”

    一次说透小程序的“四大特性、六大入口、两大核心场景” 1月9日,微信小程序正式发布,畅移信息作为首批参与小程序内测...

  • Github | 程序员七大生产力工具

    Github | 程序员七大生产力工具 Github | 程序员七大生产力工具

  • 小程序大商机

    从新手到高手,从高手到财务自由!有人跑的快,有人跑的慢!抓住大机会,就可以迈大步!积累小机会胜过大机会!如果你的努...

  • 小程序=大未来?

    在小程序发展势不可挡的今天,大部分企业商家也在为抢占微信庞大的用户流量而努力,巨额流量带来的红利之下,你的小程序呢...

  • 小程序,大未来

    “一代鞋王”百丽宣布退市 如果在大变革来临之际不顺应时代的潮流,不做出应对之策即便是再庞大的商业帝国,也不能幸免于...

  • 小程序 =大未来?

    在小程序发展势不可挡的今天,大部分企业商家也在为抢占微信庞大的用户流量而努力,巨额流量带来的红利之下,你的小程序呢...

网友评论

      本文标题:大程序

      本文链接:https://www.haomeiwen.com/subject/ndoubktx.html