C语言基础补充

一、基本结构
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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值