HeadFirst笔记系列——第四章 分割源文件(共享代码)

2017-12-19  本文已影响21人  安新小子

C语言中的数据类型

浮点型:float double
整形: short int long char (C语言中char是以字符编码保存的,他们也是数字,ASCII码表)

注意:整型相除只能得到整数,要想结果为浮点型就需要将计算中的其中一个数转为浮点型

C语言中函数是有顺序的 (和Java有区别)

main函数中调用的函数需要在main函数之前声明,和Java语言有很大的区别。可以先声明后定义

共享代码:(和Java有区别)

当我们有一段代码或者一个C文件中的所有代码需要共享时可以这样做

1:写好共享代码,如文件名为 test.c
2:创建一个头文件,如 test.h,包含所有的共享函数声明
3:在需要共享的代码的代码上添加上面的头文件
4:在使用gcc编译的时候需要指定需要用到的所有C文件

#include "test.h"   //因为是本地的头文件,所以使用双引号来引用,而不是尖括号<>

部分编译

两个指令:

gcc -c *.c  //将c文件编译成.o文件即目标文件
gcc *.o -o launch //将.o文件编译程可执行文件

这样就可以修改哪个源文件重新编译哪个,不必因为一个源文件修改编译全部的文件

make指令

用make指令来完成自动化编译,

1:创建makefile文件
2:根据特定的格式指定两个参数
参一:编译需要的文件(依赖项)
参二:需要执行的指令(生成方法)

这样只需要执行make launch 就会按照makefle中的指令来编译生成launch文件,这样当有文件被修改过,make就会帮我们分辨需要编译哪个,不用编译哪个

makefile模板

//生成的目标文件名:需要依赖的文件一,需要依赖的文件二,需要依赖的文件三
launch.o: launch.c launch.h thruster.h  
    gcc -c launch.c   //执行的指令  注意:这里必须使用tab来缩进
thruster.o: thruster.h thruster.c
    gcc -c thruster.c
launch: launch.o thruster.o
    gcc launch.o thruster.o -o launch

这样只需要执行下面的命令

make launch 

即运行了下面的命令

gcc -c launch.c
gcc -c thruster.c
gcc launch.o thruster.o -o launch

C语言和Java的区别:

1:函数调用区别:

在Java中不用在意定义函数的位置关系;

在C语言中函数要在main函数之前声明或者定义,否则编译器会不认识这个后定义的函数,然后默认的把这个函数的返回值认为是int,容易出现错误。但是所有的函数都定义在main函数之前是非常不方便的所以C语言中可以先把函数声明出来,之后在定义函数——声明和定义分离。

2:分离代码的区别:

在Java中每一个文件都是一个类,类以文件的形式存在同时也将一个程序的代码分成多个源文件,这样便于调用和维护,而相互之间的调用使用对象的方式;

C语言中没有对象的概念,它是面向过程的语言,那么C程序中分离的多个源文件中的代码是怎么互相调用的呢?头文件。将需要共享的代码放到一个单独的C文件中,然后把共享的函数声明放到一个单独的 .h 头文件中,所有需要使用共享代码的C文件中都包含这个头文件,这样在编译的时候列出所有需要使用的C文件就可以了,编译器就会在代码中通过头文件的声明自动的找到共享代码。

上一篇 下一篇

猜你喜欢

热点阅读