C语言在RM中的应用

发布于:2022-10-29 ⋅ 阅读:(377) ⋅ 点赞:(0)

一,c语言关键字

1.1static作用

1.1.1static修饰函数体中的局部变量


  如下图中 void test 函数体中定义的局部变量“i”未被static所修饰,所以每当“i”执行完一次之后又被重新赋值为0,然后再i++,所以输出了10个1。在子函数直行完就释放了内存空间


2.如下图中 void test 函数体中定义的局部变量“i”被static所修饰,每次“i”执行完之后出了作用域依然存在,所以能保留上一次所加的值直到程序结束,生命周期才结束

 

 1.1.2static修饰全局变量

  1. 如下图中,在test_2.c源文件中,定义一个“未被static”所修饰的全局变量add,然后在test.c(其他)源文件中可以正常输出
  2. 如下图中,在test_2.c源文件中,定义一个“被static”所修饰的全局变量add,然后在test.c(其他)源文件中编译失败,无法正常输出。

 1.1.3static修饰函数

1.如下图中,在test_2.c源文件中,定义一个“未被static”所修饰的函数Add,然后在test.c(其他)源文件中可以正常被调用且正常输出。

2.如下图中,在test_2.c源文件中,定义一个“被static”所修饰的函数Add,然后在test.c(其他)源文件中编译失败,无法被调用和输出

1.static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。静态全局变量在定义时如果不赋初值,会默认初始化为0(只在编译完成后初始化一次)
2.一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。
3.一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用
注:static修饰的全局变量和函数,所修饰两者的作用是一样的


1.2 extern的作用

我在一个.c文件有个变量。在另一个文件 如何调用 ,我就告诉他 你只要在你的变量前面 加上extern 就可以了

extern是计算机语言中的一个关键字。可置于变量或者函数前。以表示变量或者函数的定义在别的文件中。提示编译器遇到此变量或函数时。在其它模块中寻找其定义。加extern的变量或者函数可以在其他函数中调用

 1.3 union联合体的作用

定义的 联合体union的内存总大小=所有成员中内存最大的值

联合体union中能定义数组

不同于结构体,定义的结构体的内存总大小=所有成员所用内存的总和

结构体中不能定义数组

1.4数据类型的选择

机械角度为0~8191和温度无正负值用无符号类型

转速和转矩电流有正负值用有符号类型

1.5  if  else结合和if if  if结合

if 和else结合,由于else表示否则,所以在程序运行时if和else只会运行其中一个

if和if 结合  ,在程序运行时两个if都会运行,直到程序结束

二,指针的应用&&理解

好比底盘要每时每刻获取遥控器收到的数据变量,而如果我们把遥控器收到的数据变量的地址传给底盘,相当于我把遥控器收到的数据变量的房间钥匙给了底盘,这时底盘就能随时读取遥控器的数据

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到