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

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

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

C语言编程规范

  1. 头文件

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部