笔记(嵌入式Linux C篇)2——编程习惯、零散知识点(持续补充)

一、编程习惯

  1. 头文件包含完整

stdio.h:fopen/fwrite/fread/fprintf/printf/scanf等

stdlib.h:strtol/atoi/malloc/free/rand/abs等

string.h:memcpy/memset/strcpy/strlen/strncpy等

  1. 编译调试时使用-Wall显示所有错误

gcc编译会出现将error报成warning的情况,造成程序执行异常,可以再调试的时候使用-Wall来查看所有警告。

gcc a.c -Wall
  1. 习惯以函数为单位解决问题

如实现加减乘除四个功能,分为四个功能函数,需要的时候去调用,增加复用性。

  1. 声明部分和实现部分区别开

  1. 注释注释注释

/* 程序说明 */
//小注释
#if 0
void example(void)
{    
    //大段函数注释
}
#endif

二、零散知识点

  1. return 0与exit(0)

  • return返回函数值,是关键字; exit 是一个函数。

  • return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。

  • return是函数的退出(返回);exit是进程的退出。

二者在单进程单线程中无区别,返回值是给父进程看,如在linux中创建.c程序其父进程就是shell;没有return时,看语句如最后一句如下的话,使用echo $?语句可以看到程序返回值为13。

printf("Hello world!\n");  \\13个字符
  1. inline内联函数

c++中的函数类型,与c中的宏定义相似,一般在h文件中定义,在调用的时候展开,以空间换时间。内联函数与宏:

宏函数的优点:

1.没有函数栈帧的开销,效率提升。

宏函数的缺点:

1.宏替换在预处理阶段完成,不能调试。

2.可读性差,不易维护,容易误用

  1. 没有类型安全的检查

  1. sizeof和strlen

sizeof用于返回运算对象的内存大小,单位是字节,若制定数组大小为20,则sizeof固定为20。

strlen函数求得的字符串长度是从字符串第一个元素到第一个'\0'之间元素的个数(如果字符串中间有'\0',则结果不是整个字符串的长度),同时不包括该'\0'

int main(void)
{
    int size,len;
    char array[] = "Hello";
    size = sizeof(array);
    len = strlen(array);
    printf("Size of array is: %d\n", size);
    printf("strlen of array is: %d\n", len);
    exit(0);
}
Size of array is: 6
strlen of array is: 5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值