嵌入式C语言小结(上)

嵌入式C语言小结(上)

基础知识

嵌入式C语言是C语言的扩展,在嵌入式系统中应用于编写嵌入式软件。与普通C语言没有特别大的区别,主要区别在于嵌入式开发人员的思考角度,使用习惯与普通C语言不一样。普通C语言的运行环境是OS之上,有很多的标准库函数支撑调用,分配的内存是电脑的内存,其处理器就是电脑的CPU;而在嵌入式环境中,会涉及到底层的硬件,而硬件本身是没有标准库可以调用的,因而就需要开发者使用C语言编程调试硬件,使其可以工作,从语法上来说C语言并不复杂, 但编写优质可靠的嵌入式C程序并非易事,不仅需要熟知硬件特性和缺陷,还需要对编译原理和计算机技术知识有着一定的了解。在结合相关资料, 阐述嵌入式需要了解的C语言知识和重点,希望每个读到这篇文章的人都能有所收获。

嵌入式C语言的基本结构及其特点:

基本结构:

#include<stdio.h>
void main (void)//这个就是主函数,第一个void 就是返回类型:有void,int ,float等可以选择,
//第二个是main就是函数名,这里是主函数,它名字固定的,其他的函数可以随
//意定义,第三个是void,是就是参数类型,一样可以由void,int,float等等选择。
{ //中括号内就是函数体了,是函数的具体内容了
int a,b;
a=b=0;
}

特点:

1.C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

2.C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

3.不同的变量类型可以用结构体(struct)组合在一起。

4.只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

5.部份的变量类型可以转换,例如整型和字符型变量。

6.通过指针(pointer),C语言可以容易的对存储器进行低级控制。

基本数据类型:

在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。而基本数据类型就是算数类型,可分为整数类型和浮点数类型。

整数类型

下表列出了关于标准整数类型的存储大小和值范围的细节:

类型存储大小取值范围
char1字节-128 到 127 或 0 到 255
unsigned char1字节0到255
signed char1字节-128到127
int2或4字节-32768到32787或-2147483648到2147483647
unsigned int2或4字节0到65535或0到4294967295
short2字节-32768到32767
unsigned short2字节0到65535
long4字节-2147483648到2147483647
unsigned long4字节0到4294967295

注意:各种类型的存储大小与系统位数有关,但目前通用的以64位系统为主。
以下列出了32位系统与64位系统的存储大小的差别(windows 相同)
请添加图片描述
例:为了得到某个类型或某个变量在特定平台上的准确大小,您可以使用 sizeof 运算符。表达式 sizeof(type) 得到对象或类型的存储字节大小。下面的实例演示了获取 int 类型的大小:

#include <stdio.h>
#include <limits.h>

int main()
{
printf(“int 存储大小 : %lu \n”, sizeof(int));

return 0;
}
当您在 Linux 上编译并执行上面的程序时,它会产生下列结果:
int 存储大小 : 4

浮点数类型

类型存储大小取值范围
float4字节1.2E-38到3.4E+38
double8字节2.3E -308到1.7E+308
long double16字节3.4E-4932到1.1E+4932

头文件 float.h 定义了宏,在程序中可以使用这些值和其他有关实数二进制表示的细节。下面的实例将输出浮点类型占用的存储空间以及它的范围值:
例:
#include <stdio.h>
#include <float.h>

int main()
{
printf(“float 存储最大字节数 : %lu \n”, sizeof(float));
printf(“float 最小值: %E\n”, FLT_MIN );
printf(“float 最大值: %E\n”, FLT_MAX );
printf(“精度值: %d\n”, FLT_DIG );

return 0;
}

当您在 Linux 上编译并执行上面的程序时,它会产生下列结果:

float 存储最大字节数 : 4
float 最小值: 1.175494E-38
float 最大值: 3.402823E+38
精度值: 6

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值