程序结构

大程序处理

  在Dev C++中新建一个项目,把几个源代码文件加进去,对于一个项目,Dev C++的编译会把一个项目中所有的源代码都编译后,连接起来

 

头文件

  把函数原型放到一个头文件(.h)钟,在需要调用这个函数的源代码文件中,就能让编译器在编译的时候知道函数的原型

  在使用和定义这个函数的地方都应该#include这个头文件,这样可以保证函数的正确性,

  一般的做法就是任何的.c都有对应的同名.h,把所有对外公开的函数原型和全局变量的声明都放进去,

声明

  int i ;是变量的定义

  extern int i ;是变量的声明

  类型:

  • 函数原型
  • 变量声明
  • 结构声明
  • 宏声明
  • 枚举声明
  • 类型声明
  • inline函数

  只有声明可以被放在头文件中,否则会造成有重复的实体

  声明也不能被重复声明,因此引入了条件编译 

#ifndef _MAX_H_
#define _MAX_H_
xxx

#endif

 

Makefile

认识makefile

  makefile并非仅仅提供一次gcc编译,它更重要的意义是表达了多文件之间的依赖关系

max: main.o max.o
    gcc main.o max.o -o max

main.o: main.c max.h
    gcc -c main.c

max.o:max.c max.h
    gcc -c max.c

makefile变量

  

sum:sum.o main.o
    gcc sum.o main.o -o sum

main.o:sum.h
sum.o:sum.h

%.o:%.c
    gcc -c $<

一般只表示依赖关系,后面承接相应的通用编译操作

%.o:%.c表示.o的文件依赖于.c

  $代表变量, $<代表第一个变量

CC = gcc
OBJS = main.o sum.o

sum: $(OBJS)
    $(CC) $(OBJS) -o sum

$(OBJS):sum.h

%.o: %.c
    $(CC) -c $<

  $^代表上面依赖的文件,$@代表目标文件

  $echo $^会输出依赖文件名字

 

程序结构

上一篇:My notebook-Exercise 2: Comments and Pound Characters


下一篇:Git使用