易截截图软件、单文件、免安装、纯绿色、仅160KB

C 编程最佳实践


简介
本文是为了满足开发人员的需要而写的。我们总结了一套指南,无论作为开发人员还是顾问,这些指南多年来一直都很好地指导着我们,我们把它们作为建议提供给您,希望对您的工作有所帮助。您也许不赞同其中的某些指南,但我们希望您会喜欢其中的一些并在您的编程或移植项目中使用它们。
风格与指南
使用一种使代码具有可读性和一致性的源代码风格。如果没有团队代码风格或自己的风格,您可以使用与大多数 C 程序员采用的 Kernighan 和 Ritchie 风格相似的风格。然而,举一个极端的例子,有可能最终会写出与下面相似的代码:
int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell\
o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);
— 1984 年模糊 C 代码大赛“差劲奖”。应代码作者要求匿名。
通常将主例程定义为 main()。对应的 ANSI 编写方式是 int main(void)(如果不考虑命令行参数的话)或 int main( int argc, char **argv )。ANSI 以前的编译器会省略 void声明,或列出变量名以及紧随其后的声明。
空格
充分利用水平和垂直空格。缩进和空格间距应反映出代码的块结构。
应将条件运算符的长字符串分割成单独的几行。例如:
if (foo->next==NULL && number < limit && limit <=SIZE
&& node_active(this_input)) {...
最好改成:
if (foo->next == NULL
&& number < limit && limit <= SIZE
&& node_active(this_input))
{
...
同样,应将描述得很详细的 for 循环分割成不同的行:
for (curr = *varp, trail = varp;
curr != NULL;
trail = &(curr->next), curr = curr->next )
{
...
对于其它复杂表达式(如使用三元运算符 ?:的表达式),最好也将其分割成数行。
z = (x == y)
? n + f(x)
: f(y) - n;

注释
注释应描述正在发生什么事、如何完成它、参数表示什么、使用了哪些全局变量以及任何限制或错误。但要避免不必要的注释。如果代码比较清晰,并且使用了良好的变量名,那么它应该能够较好地说明自身。因为编译器不检查注释,所以不保证它们是正确的。与代码不一致的注释会起到相反的作用。过多的注释会


相关文档:

Visual C++ C runtime库名称分析

单线程
Single-Threaded(static)                            libc.lib
Debug Single-Threaded(static)           & ......

ArcSDE C APi的C#调用

选两个比较有代表性的函数
首先下载安装sdk,将其中的sde.dll,pe.dll和sg.dll拷贝过来
使用如下的代码,指定dll后直接调用其中的函数,
/// <summary>
/// Sets the value for a small integer column.
/// </summary>
[DllImport(".\\sde91.dll", SetLastError = true, ......

学生管理系统(c/cpp)

#include
using namespace std;
typedef struct lnode
{
    long sno;
    char name[20];
    struct lnode *next;
}LNode, *LinkList;
LinkList InitList()
{
    LinkList head;
    head = new LNode;
 &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号