Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
static
线程内变量
全局变量
【RTT新手求助】线程中的static变量和全局static变量区别
发布于 2021-04-09 16:36:58 浏览:1590
订阅该版
```c /* 现在first_init标志放在函数内部都不行了?放在全局就好了 是因为内存占用太大了?不对呀,这个static又不占用栈空间? 放在函数外,那么则通过串口发送demo_03命令,第二次进入的时候,first_init 已经变为了1。 但是如果放在函数内部,则第二次进入依然是0。理论上不应该呀,是不是内存溢出导致的? msh >free total memory: 4072 used memory : 3128 maximum allocated memory: 3128 */ static uint8_t first_init = 0; void demo_03(void) { // static uint8_t first_init = 0; if(first_init == 0) { first_init = 1; rt_sem_init(&sem_lock,"sem_lock",1 ,RT_IPC_FLAG_FIFO); rt_sem_init(&sem_empty,"sem_empty",SEM_MAX,RT_IPC_FLAG_FIFO); rt_sem_init(&sem_full,"sem_full",0,RT_IPC_FLAG_FIFO); rt_thread_init(&thread1, "produce", producer_thread, NULL, thread1_stack, 256, 1, 10); rt_thread_init(&thread2, "consum", consumer_thread, NULL, thread2_stack, 256, 3, 10); rt_thread_startup(&thread1); rt_thread_startup(&thread2); } else { rt_kprintf("demo_03 is already started\n"); } } MSH_CMD_EXPORT(demo_03, semaphore description) ```
查看更多
james_s
2021-04-09
这家伙很懒,什么也没写!
我用这个编译器试了试 arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors 6-2017-q1-update) 6.3.1 rf-thread最新master分支, 放到函数里面和外面效果一样:  
3
个回答
默认排序
按发布时间排序
flashman2002
2021-04-09
这家伙很懒,什么也没写!
放在函数外,第二次进入该函数时,first_init变为了1。(没毛病) 放在函数内部,第二次进入依然是1。(也没有毛病呀)
mii
2021-04-09
这家伙很懒,什么也没写!
static用法: 在C中,static主要定义全局静态变量、定义局部静态变量、定义静态函数。 1、定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量。全局静态变量有以下特点。 a.在全局区分配内存。 b.如果没有初始化,其默认值为0. c.该变量在本文件内从定义开始到文件结束可见。 2、定义局部静态变量:在局部变量前面加上关键字static,其特点如下: a.该变量在全局数据区分配内存。 b.它始终驻留在全局数据区,直到程序运行结束。 c. 其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束。
撰写答案
登录
注册新账号
关注者
0
被浏览
1.6k
关于作者
apaki
这家伙很懒,什么也没写!
提问
1
回答
1
被采纳
0
关注TA
发私信
相关问题
1
线程创建中的static
2
请问下使用MSH命令进入的函数如何直接调用
3
rt-thread air724 启动顺序问题
4
qemu-vexpress-a9 上c++ 全局类的构造函数没有调用
5
RT_Thread中不同线程对全局变量读和写,会导致死机吗?
6
全局变量定义问题,内存被分配到哪了
7
变量循环自加1,循环第二次时就突变其他数字,请问是什么原因造成的?
8
全局变量在系统初始化时被改写
9
系统在堆初始化时进入到rt_object_get_information 为什么返回RT_NULL?
10
在rtthread的中断中,以及外部线程都对全局变量进行操作,如何保证临界区全局变量正确?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
Studio环境下ST M7系列USB主机(CherryUSB)配置及踩坑
2
RTT串口查找函数使用过程中遇到的问题。
3
RT-Thread CI编译产物artifacts自动上传功能介绍
4
STM32G030移植RT-Thread
5
CubeMX & RT-Thread Studio 联合开发说明
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
rt-smart
RTC
FAL
I2C_IIC
cubemx
ESP8266
UART
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
GD32
定时器
ADC
flashDB
编译报错
socket
中断
rt_mq_消息队列_msg_queue
keil_MDK
Debug
SFUD
ulog
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
3
个答案
2
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
a1012112796
2
个答案
1
次被采纳
聚散无由
2
个答案
1
次被采纳
加缪
1
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部