c语言大程序结构

分而治之

main()里面程序太长适合分成几个函数

一个源代码文件太长适合分成几个文件

编译单元

一个.c文件就是一个编译单元

编译器一次只能处理一个.c文件

项目

Dev c++的编译时将每个源代码编译后连接起来

有的IDE编译和链接是分开的(编译和构建),VS…

头文件

函数原型

如果不给出函数原型,编译器会猜测函数传入,返回 都是int

编译器编译时只看当前源程序,不会去同项目中其他源程序中找函数原型

如果你的函数并非int ,编译时不会出错,链接时也不会报错,但执行时就不对了

故要在调用函数的地方告诉编译器,函数原型是什么,即头文件

头文件.h

1.将函数原型放入头文件中(.h结尾),在调用该函数的源程序中#include这个

头文件,即告诉了编译器函数原型是什么

2.一般任何.c文件都有对应同名的.h文件,所有对外公开函数的原型、全局变量

的声明都放进去

#include

#include是编译预处理指令,和宏一样,编译前先执行

#include把那个文件的文本原封不动地放在它所在位置,不一定非要放在开头

“ ”方式指出头文件,要求编译器先在当前.c文件所在目录找头文件,没有再去

编译器指定的目录找。

<>方式指出头文件,直接去系统指定目录找。

#include"myway.h"
#include<stdio.h>

不对外公开的函数

在函数前加上static,就是只能在当前编译单元使用的函数

在全局变量前加static,就是只能在当前编译单元使用的全局变量

(注意与静态本地变量区分)

声明

int i;是变量的定义。
extern int i;是变量的声明。

声明是不产生代码的东西:(只有声明可以放在头文件中)
函数原型
变量声明
宏声明
结构声明   
枚举声明
类型声明
inline函数

定义是产生代码的东西。

标准头文件结构

用以避免同一个编译单元中,同名的结构被重复声明

运用条件编译和宏,保证一个头文件在一个编译单元内只被#include一次

#ifndef __List_Head__
#define __List_Head__

#include"node.h"
struct node _list;
typedef struct {
	node* head;
	node* tail:
}
#endif

如有错处,欢迎指正。(根据慕课翁凯老师课程做的笔记)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值