C语言基础补充

来源:互联网 发布:实战linux编程精髓pdf 编辑:程序博客网 时间:2024/06/05 21:01
一、基本结构
1. 无论是否只有单行代码,花括弧必须完备,方便后续人员维护开发。
2.针对头文件只作函数变量声明用,函数在库中实现。
3. main函数:
(1)标准main函数格式:
① int main(void){…}   ② int main(int argc,char**argv){…}//argc:输入参数个数,不小于1;argv:输入字符串。

  忌用 main()、void main()等不规范格式。

(2)main函数返回值:
   Linux下的返回值“0”表示成功,非值(负值)表示失败。函数的返回值一般只表示成败,函数结果不做返回,而用输出表示。

二、基本语法
1. 循环内少判断,尽量先处理完判断再进行循环。
2. if要配套else,switch要配套deafult
3. 设计优先级时使用小括号“()”区分,不要使用默认优先级。

三、函数
   函数代码一般不要超过两百行,尽量不要使用递归函数,嵌入式中默认栈只有1024k,递归函数容易将栈击穿。
调试:
    功能函数   输出符        解释
 __FILE__       %s    输出当前文件名
 __LINE__       %d    输出当前所在行数
 __FUNCTION__   %s     输出当前函数名
    函数的调用必须处理返回值,例:
    int ret;    ret =function();    if (ret !=0)    {        printf(…);        return -1;    }     

 
当出现异常时应进行分支处理,在调用函数中使用返回而不退出。
   返回前应释放志愿,常见为内存释放,例:
   pbuf =malloc(1024);    …    free(pbuf);    


    参数/函数的命名一般为动实结构:
    intGetVersion();    intSetxxxValue();


    扇入扇出一般控制在七个以内,
扇入:直接调用该模块的上级模块的个数。
扇出:模块直接调用的下级模块的个数。

四、内存
1. 分配要处理返回值;
2. 不要频繁分配内存,这样容易产生内存碎片。规避碎片的方法可以使用常驻内存,即不释放多次使用,或者使用     利用哈希表;
3. 保持内存连续性;
4. 使用强制性转换;
5. 遵守谁调用谁释放原则。

五、数组、字符串
熟悉strcpy()、strcmp()、strcat()、strchr()、strstr()等函数。
利用指针偏移控制数组。一般超过1024字节的不再使用数组,而是使用内存分配。

六、结构体
1. 保持关联性
高内聚,低耦合
2. 尽量四字节对齐,例:
    int num;    char i;    char j;    char k;    char l;    double n;


32位系统中指针亦是四字节。
3. 利用typedef定义结构体别名。

date:2013-01-20(W)
0 0
原创粉丝点击