嵌入式学习之C语言

嵌入式学习之C语言,第1张

    用预处理指令 #define 声明一个常数,用以表明 1 年中有多少秒(忽略闰年问题):

  •  
#define  SECONDS_PER_YEAR  (60 * 60 * 24 * 365)UL

		

    写一个标准宏MIN,这个宏输入两个参数,并返回较小的一个:

  •  
#define  MIN(A,B) ((A) <= (B) ? (A):(B))

    预处理器标识 #error 的目的是什么:

  •  
#error : 停止编译 并显示 错误信息

    嵌入式系统中经常要用到无限循环,你怎么样用C语言编写死循环:

嵌入式学习之C语言,55b33232-0d8c-11ed-ba43-dac502259ad0.png,第2张

    用变量a给出下面的定义:

  • 整形数:int a;

  • 指向整型数的指针:int * a;

  • 指向指针的指针,它指向的指针指向整型数:int * * a;

  • 有10个整型数的数组:int a[10];

  • 有10个指针的数组,它的指针指向整型数:int * a[10];

  • 指向有10个整型数的数组的指针:int ( * a ) [ 10 ];

  • 指向函数的指针,该函数有一个整型参数,并返回一个整型数:int ( * a)(int);

    staTIc的作用,请写出两个:

嵌入式学习之C语言,55d6f6a4-0d8c-11ed-ba43-dac502259ad0.png,第3张

    关键字const的作用:

嵌入式学习之C语言,55ed8306-0d8c-11ed-ba43-dac502259ad0.png,第4张

    另外使用const定义变量:

嵌入式学习之C语言,55f98cdc-0d8c-11ed-ba43-dac502259ad0.png,第5张

    volaTIle的作用:

    定义为volaTIle的变量可能会被意想不到地改变,优化器在用到这个变量时必须重新读取这个变量的值,而不是保存在寄存器里的备份。

    volaTIle变量的例子:

嵌入式学习之C语言,56057286-0d8c-11ed-ba43-dac502259ad0.png,第6张

    嵌入式系统总是要用户对变量或寄存器,进行位操作:

嵌入式学习之C语言,56158b1c-0d8c-11ed-ba43-dac502259ad0.png,第7张

    嵌入式系统经常具有要求程序员去访问某特定的内存位置,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66:

嵌入式学习之C语言,5621a924-0d8c-11ed-ba43-dac502259ad0.png,第8张

    中断的概念:

    当某个事件发生时,CPU 停止运行正在执行的程序,而转去执行处理该事件的程序,处理该事件后,返回原程序继续执行下去的过程。

    ISR:中断服务程序(Interrupt Service Routines)。

嵌入式学习之C语言,562be6fa-0d8c-11ed-ba43-dac502259ad0.png,第9张

    下面代码输出的结果是什么?

嵌入式学习之C语言,5644885e-0d8c-11ed-ba43-dac502259ad0.png,第10张

    当表达式 中存在 有符号类型 和 无符号类型 时,所有的 操作数 都自动转换为 无符号类型,因此 -20 变成了一个非常大的正整数,该表达式计算出的结果 大于6,答案是输出 > 6。

    动态内存分配:

嵌入式学习之C语言,565dcb0c-0d8c-11ed-ba43-dac502259ad0.png,第11张

    typedef语句用于给基本数据类型和导出数据类型定义一个新的名字:

嵌入式学习之C语言,56740bce-0d8c-11ed-ba43-dac502259ad0.png,第12张

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2711526.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存