散分--随便求一份C语言编程规范

nightkids_008 2011-07-04 11:02:11
今天终于把分配的任务做完了,明天开始搞驱动去了。今天被头说了一顿,说我编程的代码规范有问题,求各位好心人给一份C的编程规范。
...全文
108 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
nightkids_008 2011-07-05
  • 打赏
  • 举报
回复
结贴。。。谢各位,下次我喷他 O(∩_∩)O哈哈~
ff007bit 2011-07-05
  • 打赏
  • 举报
回复
各个公司都会有编程规范的~
可以去搜一搜~
接分~
就想叫yoko 2011-07-05
  • 打赏
  • 举报
回复
他说你不规范又不说你哪里不规范?
c_losed 2011-07-05
  • 打赏
  • 举报
回复
林锐好像写过一份吧
还不错
luciferisnotsatan 2011-07-05
  • 打赏
  • 举报
回复
华为规范定了不少,可惜员工们都不遵守。
AnYidan 2011-07-05
  • 打赏
  • 举报
回复
规范是什么?规定而已,公司没有规定,你去 follow 个鸟?
naturemickey 2011-07-05
  • 打赏
  • 举报
回复
你说的是语言规范,还是编程规范啊?

如果是语言规范,那么《C语言参考手册》。
编程规范是死的,人是活的,你找一个上万行代码的程序写一写你自然就知道规范是什么了。
五哥 2011-07-05
  • 打赏
  • 举报
回复
接分,跟踪修炼...
贪食蛇男 2011-07-05
  • 打赏
  • 举报
回复
同意,增加娱乐性。
[Quote=引用 4 楼 iambic 的回复:]

与其求规范,不如贴你自己的代码让大家批。一方面学习效果好,另一方面娱乐性也强。
另外编程规范应该向你的“头”去讨。每个公司有自己的规范。这种看属下代码不顺眼却不提供帮助的“头”也该死。建议你跳槽吧。
[/Quote]
nightkids_008 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 iambic 的回复:]
与其求规范,不如贴你自己的代码让大家批。一方面学习效果好,另一方面娱乐性也强。
另外编程规范应该向你的“头”去讨。每个公司有自己的规范。这种看属下代码不顺眼却不提供帮助的“头”也该死。建议你跳槽吧。
[/Quote]让我自己找呢。晕倒了。。。。
iambic 2011-07-04
  • 打赏
  • 举报
回复
与其求规范,不如贴你自己的代码让大家批。一方面学习效果好,另一方面娱乐性也强。
另外编程规范应该向你的“头”去讨。每个公司有自己的规范。这种看属下代码不顺眼却不提供帮助的“头”也该死。建议你跳槽吧。
zhangyuehua123 2011-07-04
  • 打赏
  • 举报
回复
不好意思,页面问题,显示不美观了。
zhangyuehua123 2011-07-04
  • 打赏
  • 举报
回复

/*===================== 源文件注释 ===================== */

/*
华为规范:源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、
主要函数及其功能、修改日志等。
*/


/************************************************************************************************************
** Copyright (C), 1988-1999, Huawei Tech. Co., Ltd.
** 文件名: test.cpp
** 作者:
** 版本: // 版本信息
** 日期:
** 模块描述: // 模块描述
// 描述本文件的内容、功能、内部各部分
// 之间的关系及本文件与其它文件关系等

** 函数列表: // 主要函数及其功能
1. -------
2. -------
** 修改历史: // 历史修改记录
// 每条修改记录应包括修改日期、修改
// 者及修改内容简述。
1. 作者:
时间:
版本:
描述:
2. -------
***********************************************************************************************************/



/*===================== 函数注释 ===================== */

/*
华为规范:函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用
关系(函数、表)等。
*/

/*******************************************************************************************
** 函数名称: // 函数名称
** 作 者: // 作者
** 版 本: // 版本
** 日 期: // 完成日期
** 功能描述: // 函数功能、性能等的描述
** 被本函数调用的函数清单: // 被本函数调用的函数清单
** 调用本函数的函数清单: // 调用本函数的函数清单
** 被访问的表: // 被访问的表(此项仅对于牵扯到数据库操作的程序)
** 被修改的表 : // 被修改的表(此项仅对于牵扯到数据库操作的程序)
** 输 入: // 输入参数说明,包括每个参数的作用、取值说明及参数间关系。
** 输 出: // 对输出参数的说明
** 返 回 值: // 函数返回值的说明
** 其 他: // 其它说明
** 修 改 历 史: // 修改历史记录列表,每条修改记录应包括修改日期、
// 修改者及修改内容简述
1. 修改时间:
修 改 者:
版 本:
修改简述:
2. ......
*********************************************************************************************/




/*===================== 头文件注释 ===================== */

/*
华为规范:说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应
进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、
与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。
*/

/*******************************************************************************************************************************************
** Copyright (c) 1998-1999 *********公司技术开发部 // 如 Copyright (C), 1988-1999, Huawei Tech. Co., Ltd.
** 文件名: // 文件名
** 作者: // 作者
** 版本: // 版本
** 日期: // 完成日期
** 描述: // 用于详细说明此程序文件完成的主要功能,与其他模块
// 或函数的接口,输出值、取值范围、含义及参数间的控
// 制、顺序、独立或依赖等关系
** 其它: // 其它内容的说明
** 函数列表: // 主要函数列表,每条记录应包括函数名及功能简要说明
1......
2......
** 修改历史: // 修改历史记录列表,每条修改记录应包括修改日期、
// 修改者及修改内容简述
1. 修改时间:
修 改 者:
版 本:
修改简述:
2. ......
*******************************************************************************************************************************************/


/*============Naming Rules====================*/

1. General Naming Rules

(1) How to Name

int num_errors; // Good.
int num_completed_connections; // Good.

int n; // Bad - meaningless.
int nerr; // Bad - ambiguous abbreviation.
int n_comp_conns; // Bad - ambiguous abbreviation.



(2) Abbreviations

int error_count; // Good.
int error_cnt; // Bad.

// Good
// These show proper names with no abbreviations.

int num_dns_connections; // Most people know what "DNS" stands for.
int price_count_reader; // OK, price count. Makes sense.

// Bad!
// Abbreviations can be confusing or ambiguous outside a small group.

int wgc_connections; // Only your group knows what this stands for.
int pc_reader; // Lots of things can be abbreviated "pc".


2. File Names

my_useful_class.cc
my-useful-class.cc
myusefulclass.cc
myusefulclass_test.cc // _unittest and _regtest are deprecated.

3. Type Names

// classes and structs
class UrlTable { ...
class UrlTableTester { ...
struct UrlTableProperties { ...

// typedefs
typedef hash_map<UrlTableProperties *, string> PropertiesMap;

// enums
enum UrlTableErrors { ...

4. Variable Names

(1) Common Variable names

string table_name; // OK - uses underscore.
string tablename; // OK - all lowercase.

string tableName; // Bad - mixed case.

(2) Class Data Members

string table_name_; // OK - underscore at end.
string tablename_; // OK.

(3) Global Variables

with g_ or some other marker to easily distinguish it from local variables

5. Constant Names

const int kDaysInAWeek = 7; // Use a k followed by mixed case: kDaysInAWeek.

6. Function Names

AddTableEntry()
DeleteUrl()
OpenFileOrDie()
7. Macro Names

#define ROUND(x) ...
#define PI_ROUNDED 3.0
至善者善之敌 2011-07-04
  • 打赏
  • 举报
回复
搜微软编程规范

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧