原文链接: http://codeshold.me/2017/03/c_programming_specification.html
参加华为软件精英挑战赛,复习了下基本的C语言编程规范,并做了小结!
C语言编程规范
头文件
- 编译过程
- 头文件职责单一:头文件插入不简单,会占用不少的时间
- VC预编译头的选项???
- 防止一些重复编译来达到加快编译速度的一个技术
- 在编译时,头文件不会直接参与编译,而是在预处理时与cpp文件合并后再参与编译。有些头文件几乎是所有cpp文件都需要包含的,如
<stdio.h>
,<windows.h>
等,这样这些文件就需要在每个包含它的cpp文件中重复编译。早些时候,这些头文件不大,重复编译也浪费不了多少时间。然而到了MFC(Microsoft Foundation Classes)出现的时候,其头文件变得超级大,如就一个<afxwin.h>
就长达6000多行,这样重复编译这些长的头文件就会造成更长的编译时间。为了解决这个问题,VC++编译器把这些公共头文件事先单独编译,然后在编译包含它的cpp文件时,就直接使用头文件编译结果参与cpp文件的后续编译任务。这种“一次编译,多次使用”的方法,确实能减少编译时间。(stdafx.h
,stdafx.cpp
)
- VC预编译头的选项???
- 禁止包含用不到的头文件
- 放置接口声明、不适合放实现
- 禁止在头文件中定义变量:可能出现重定义错误
- 头文件应向稳定方向包含:一个头文件的变化,会导致所有包含该头文件代码的重新编译
- 禁止头文件循环依赖: 减少“依赖深度过深的错误”
- 总是编写内部的
#ifndef
保护符:#ifndef A_H_ ...
- 头文件应当自包含
- 禁止
extern "C"
中包含头文件!
extern "C"
的主要作用就是为了
- 编译过程