C语言编程规范(华为软件精英挑战赛)

原文链接: http://codeshold.me/2017/03/c_programming_specification.html

参加华为软件精英挑战赛,复习了下基本的C语言编程规范,并做了小结!

C语言编程规范

  1. 头文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值