“使用Makefile”的版本间的差异
来自软件实验室
(→多文件C语言源代码的组织和编译) |
|||
第42行: | 第42行: | ||
== 多文件C语言源代码的组织和编译 == | == 多文件C语言源代码的组织和编译 == | ||
+ | 通常将相关功能的函数组织在一个文件中形成属于项目的函数库,每个文件gcc -c编译为独立的.o目标文件,最后统一链接生成可执行文件。 | ||
+ | |||
+ | lesson1.c: | ||
+ | |||
+ | <nowiki> | ||
+ | #include "stdio.h" | ||
+ | |||
+ | void main(){ | ||
+ | int a; | ||
+ | printf("please input the number:\n"); | ||
+ | scanf("%d",&a); | ||
+ | printf("square(a)=%d\n",square(a)); | ||
+ | } | ||
+ | </nowiki> | ||
+ | |||
+ | lesson2.c: | ||
+ | |||
+ | <nowiki> | ||
+ | #include "stdio.h" | ||
+ | int square(int x) { | ||
+ | return x*x; | ||
+ | } | ||
+ | </nowiki> | ||
+ | |||
+ | 执行如下的命令: | ||
+ | <nowiki> | ||
+ | gcc -c lesson1.c | ||
+ | gcc -c lesson2.c | ||
+ | gcc lesson1.o lesson2.o -o lesson12 | ||
+ | </nowiki> | ||
== Makefile == | == Makefile == | ||
== autoconf == | == autoconf == |
2015年12月31日 (四) 09:55的版本
函数的概念
函数的四个基本要素:名称、返回值、参数、函数体
库函数
- 标准库函数,http://net.pku.edu.cn/~yhf/linux_c/ , /usr/include
- 第三方库函数
- 内核函数库:《Unix环境高级编程》
- 用户自定义函数
空函数的意义
构建程序的outline,像写文章那样写程序:
#include "stdio.h" void insert_card(){ } void verify_card_number(){} void verify_password(){} void authenticate_user(){ verify_card_number(); verify_password(); } void input_number(){ } void verify_money(){ } void close(){ } void main(){ insert_card(); authenticate_user(); input_number(); verify_money(); close(); }
多文件C语言源代码的组织和编译
通常将相关功能的函数组织在一个文件中形成属于项目的函数库,每个文件gcc -c编译为独立的.o目标文件,最后统一链接生成可执行文件。
lesson1.c:
#include "stdio.h" void main(){ int a; printf("please input the number:\n"); scanf("%d",&a); printf("square(a)=%d\n",square(a)); }
lesson2.c:
#include "stdio.h" int square(int x) { return x*x; }
执行如下的命令:
gcc -c lesson1.c gcc -c lesson2.c gcc lesson1.o lesson2.o -o lesson12