源文件工程结构 vs2013笔记

勿在浮沙筑高台

几千行的规模的常规代码组合工程



1)为什么管理组织源文件

项目和程序太多了,很难放在一源文件中,这时候就需要分开,                         //三行注释一行代码,3:1(微软源文件风格)

将不同功能分别放在不同源文件中,有利于理解和维护。

将工程有序分为.c与.h (如章和节的概念),更容易找到自己感兴趣的代码。 //代码是给人看的,附带能在机器上能运行。


2)源文件组织的原则    //设计1:10 项目总和   能解决什么问题 就解决什么问题  时时刻刻都需要写从最简单的开始

同一类型和同意功能,用一个.c或者.cpp与一个.h(不能有可执行代码,不能有定义,)文件保存  //.h给别人用的.c是自己用。

头文件中不能有可执行代码,也不能有数据的定义,只能有宏、类型(typedef,struct,union,menu) ,数据和函数的声明。

头文件中不能包含本地数据(既模块自己使用的数据或函数)。只有模块自己使用的函数,数据,不要用extern在头文件里声明,

只有模块自己使用的宏,常量,类型也不要在头文件里声明,应该在自己的.c文件里声明。

防止被重复包含,使用宏“#pragma once” 防止一个头文件被重复包含

文件名为何实现模块的c文件相同,列入“abc.c”对应的头文件应该是“abc.h”

不要包含那些只能有本模块中才有使用的头文件,这些头文件应该在*.c文件中包含

接口文件(.h)

3)实例

保存执行绘图操作代码的文件:画

Draw.h                                                          //画图功能    输入输出功能在一起

Draw.c

保持游戏数据代码的文件:颜料

Data.h                                                          //相应的物品数据

Data.c

保存游戏主要逻辑判定的文件:画家

Engline.h                                                 //判断逻辑

Engine.c                                                      


多文件环境中如何定义/声明变量


源文件组织的基本建议

用于模块裁剪的 条件编译宏保存在一个独立的文件里,编译软件裁剪

硬件相关代码和操作系统的相关代码与纯c代码相对独立保持,以便于软件移植。

每个模块的文件包存在独立的一个文件夹中。

声明和定义分开.h文件暴露模块需要提供给外部的函数宏类型常量全局变量,尽量做到模块对外透明。第三方使用者在

使用模块功能是不需要俩就具体的实现,文件一旦发布,需要修改一定要很慎重。

文件夹和文军名要能够反映出模块的功能。

正式版本和测试版本使用统一文件,使用宏控制是否产生测试输出。

必要的注释不可缺少

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值