linux嵌入式c语言学习笔记(持续更新)

一.基本概念


1.以helloworld为例对写程序的思路提出如下要求:
    1)头文件正确包含的重要性
    2)以函数为单位来进行程序的编写
    3)声明部分+实现部分
    4)return 0;
    5)多用空格空行
    6)添加注释
2.算法 :解决问题的方法。(流程图,NS图,有限状态机FSM)
3.程序 :用某种语言实现算法
4.进程 :
5.防止写越界,防止内存泄漏,谁打开谁关闭,谁申请谁释放。

二.数据类型,运算符和表达式

1.数据类型:(基本数据类型)
    C语言基本数据类型
    1)所占字节数
    2)存储区别
    3)不同类型的数据间进行转换(隐式,显式->强制类型转换)
    4)特殊性:
        (1)布尔型bool
        (2)float类型
        (3)char类型是否有符号
        (4)不同形式的0值:0,'0',“0”,'\0'
        (5)数据类型与后续代码中所使用的输入输出要相匹配(防止自相矛盾)

2.常量与变量

常量:在程序执行过程中值不会发生变化的量
分类:整型常量,实型常量,字符常量,字符串常量,标识常量
    整型常量:1,790,76,52
    实型常量:3.14,5.26,1.999
    字符常量:由单引号引起来的单个字符或转义字符,如'a','\n','\t','\015','x7f','\018':三位一般是表示8进制数,但'\018'不是,8不是8进制数,所以\0,1,8.
    字符串常量:由双引号引起来的一个或多个字符组成的序列,如:“”(空串),"a","abXYZ","abc\n\021\018"
    标识常量:#define,处理在程序的预处理阶段,占编译时间,特点:一改全改,缺点:不检查语法,只是单纯的宏体与宏名之间的替换。


变量:用来保存一些特定内容,在程序执行过程中值随时会发生变化的量。
定义:【存储类型】 数据类型  标识符 = 值
           TYPE    NAME  =  VALUE;

    标识符:由字母,数字,下划线组成且不能以数字开头的一个标识序列。写标识符尽量做到见名生义。

    数据类型:基本数据类型+构造类型

    值:注意匹配

    存储类型:auto   static   register   extern(说明型)
        auto:默认,自动分配空间,自动回收空间。
        register:(建议型关键字)寄存器类型,只能定义局部变量,不能定义全局变量;大小有限制,只能定义32位大小的数据类型,如double就不可以;寄存器中没有地址,所以一个寄存器类型的变量无法打印出地址查看或使用。
        static:静态型,自动初始化为0值或空值,并且其变量的值有继承性。另外,常用于修饰变量或函数。
        extern:说明型,意味着不能改变被说明的变量的值或类型。

变量的生命周期和作用范围
    1.全局变量和局部变量
    2.局部变量和局部变量

3.运算符和表达式

表达式与语句的区别

运算符部分:
    1)每个运算符所需要的参与运算的操作数个数
    2)结合性
    3)优先级
    4)运算符的特殊用法 如:%要求两边必须是整型;=与==;逻辑运算符(||,&&)的短路特性
    5)位运算的重要意义
        将操作数中第n位置1,其他位不变:num = num | 1 << n;
        将操作数中第n位清0,其他位不变:num = num & ~(1 << n);
        测试第n位:if(num & 1 << n)
        从一个指定宽度的数中取出其中的某几位:??
 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值