嵌入式C语言的7个关键知识点详细说明

1  void与void*


void表示的是无类型,不可以采用这个类型声明变量或常量,但是可以把指针定义为void类型,如void*ptr。




void指针可以指向任意类型的数据,可用任意数据类型的指针对void指针赋值,比如int*ptrInt;void*ptrVoid=ptrInt;指针的赋值可以认为是地址的传递,而一般的32位系统指针都是占用4个字节,所以指针赋值仅仅只是这4个字节的赋值与类型没什么关系。


1void*memcpy(void*dest,constvoid*src,size_tlen);2void*memset(void*buffer,intc,size_tnum);


2  vola     TI    le关键字

vola  TI le修饰表示变量是易变的,编译器中的优化器在用到这个变量时必须每次都小心地从内存中重新读取这个变量的值,而不是使用保存在     寄存器   里的备份,有效的防止编译器自动优化,从而与软件设计相符合。




3  数据占用大小


数据占用大小是指不同的数据类型在平台中所占用的字节个数,不同的平台不同类型占用的字节个数稍有不同,不过在对应的平台进行开发过程中,必须要对每个数据类型的占用大小了如指掌,否则各种数据溢出,数据越界等等接踵而来。下面是简单罗列的一些数据占用情况:(在一般32位PC中)


char8bit
short16bit
int32bit
long32bit
float32bit
double64bit

4  const与指针


const是恒定不变的意思,与指针的结合主要的问题是其const在指针中的位置导致该变量属性不同。主要的识别办法是去掉数据类型,看const修饰的是哪部分。




constint*ptr-->const*ptr-->那么const修饰的就是*ptr,而*ptr表示的是指针所指向内容,所以其总体也叫"常量指针"表示值无法改变。




int*constptr-->*constptr-->那么const修饰的就是ptr,而ptr表示的是指针变量,指针变量的值就是地址,所以总体也叫"指针常量"表示地址无法改变。

5  结构体与共联体

对于结构体和共联体在嵌入式领域是使用得非常频繁的,一些可编程芯片提供的寄存器库都是采用结构体和共联体结合的方式来提供给软件人员进行开发,同时在平时的编码过程中这两个数据类型的灵活应用也能够实现代码更好的封装与简化。如下面的简单示例,就可以非常灵活的访问Val中的bit位。

1typedefunion2{3BYTEVal;4struct__packed5{6BYTEb0:1;7BYTEb1:1;8BYTEb2:1;9BYTEb3:1;10BYTEb4:1;11BYTEb5:1;12BYTEb6:1;13BYTEb7:1;14}bits;15}BYTE_VAL,BYTE_BITS;

6  预定义标识符

一般编译器都支持预定义标识符,这些标识符结合printf等打印信息帮助程序员调试程序是非常有用的,一般编译器会自动根据用户指定完成替换和处理。
如下是常用的标识:__FILE__:表示进行编译的源文件     字符   串;__LINE__:表示当前文件的行号;
__DATE__:表示文件日期;__         TI   ME__:表示文件时间;
使用范例:

1printf("file:%s\nline:%d\ndata:%s\nTIme:%s\n",__FILE__,__LINE__,__DATE__,__TIME__);




7  #与##

#:是一种运算符,用于带参宏的文本替换,将跟在后面的参数转成一个字符串常量。

##:是一种运算符,是将两个运算对象连接在一起,也只能出现在带参宏定义的文本替换中。





嵌入式C语言的7个关键知识点详细说明_设计制作_模拟技术
26
104
0
10

相关资讯

  1. 1、道歉有用?于正新作《玉楼春》获发行许可,网友态度呈一边倒!2731
  2. 2、撒贝宁张绍刚现身北京卫视录音现场火药味十足2490
  3. 3、《流金岁月》之后,刘诗诗又传出一部新剧,搭档宋威龙出演cp3870
  4. 4、《死侍》主演瑞恩·雷诺兹透露《死侍3》的原本计划2118
  5. 5、王晶,郭富城新电影,电影票房遇冷,张艺谋电影成为黑马4018
  6. 6、《还珠格格》又要翻拍,杨超越演小燕子,鞠婧祎演紫薇?760
  7. 7、《同桌的》发问候版预告:同桌,你还好吗?4406
  8. 8、从杨紫到李一桐,《仙剑奇侠传4》的阵容还是等官宣吧!4012
  9. 9、甜度爆表!皓嫣cp《长歌行》高甜吻戏曝遭删除,相关剧本片段曝光4371
  10. 10、寡姐经典姿势被抢,黑寡妇3代女神来了!造型不一好养眼402
全部评论(0)
我也有话说
0
收藏
点赞
顶部