C 程序范例

同事写的,教我怎么写一个真正好的程序,
程序看起来清晰、明白、标准,不得不好好学习一下人家的编码风格

/*
* file.c – example code of file operation
*
* Copyright 2005 XXXX Co.,Ltd.
* All rights reserved.
*
* XXX XX <XXX@XXXcom>, March 2006
*
* This file contains some example code of file operation.
*
* set tabstop=4
*/

#include <stdio.h>
#include <errno.h>    /* 使用errno及相关函数要在包含相应的头文件,
                       同样,使用其它的c库资源(变量、函数等)也要包含
                       相应的头文件 */

#define MY_FILE        ("/tmp/aaa")    /* 将程序中使用的字符串常量、数值常量定义
                                       为宏,这样以后修改程序时会比较方便 */
#define BUF_LEN        (5)

int main() {
    FILE *fd;
    char s[BUF_LEN];    /* 此处使用BUF_LEN宏,而不是5 */
    int retval = 0;        /* 定义变量时初始化其值,这样可以减少很多出错的可能 */

    fd = fopen(MY_FILE, "r"); /* 此处使用MY_FILE宏,而不是直接使用"/tmp/aaa" */
    if (!fd) { /* 要判断fopen操作是否成功 */
        fprintf(stderr, "open file %s failed: %d: %s\n",
                MY_FILE, errno, strerror(errno));
        /* 将errno、strerror(errno)等信息输出到标准错误 */
        return 1; /* 函数正确返回时一般返回值为0,否则为非零 */
    }
    else {
        memset(s, 0, BUF_LEN); /* 使用字符串数组前要将其清零 */
        retval = fread(s, 1, BUF_LEN-1, fd);
        if (ferror(fd)) { /* 要判断fread操作是否成功 */
            fprintf(stderr, "read file %s failed: %d: %s\n",
                    MY_FILE, errno, strerror(errno));
            fclose(fd); /* 任何函数返回前都不能忘记收尾工作,关闭文件句柄
                           释放空间等 */
            return 1;
        }
    }

    printf("%d characters read: %s\n", retval, s);
    fclose(fd);

    return 0;
}

This entry was posted in Uncategorized. Bookmark the permalink.

2 Responses to C 程序范例

  1. cocobear says:

    不知道是贴出来排版的问题还是本来的代码注释就比较乱,我习惯写代码时注释尽量也对齐的.

  2. dream1123 says:

    hehe 原来是这样写的,后来我懒得排版,所以注释显得有些乱:)

Leave a Reply

Your email address will not be published. Required fields are marked *