首页 > 其他分享 >记录MDK的一个堆栈问题

记录MDK的一个堆栈问题

时间:2023-03-06 22:55:06浏览次数:41  
标签:MDK GetFlag ... buffer 记录 uint8 static 堆栈

 

static uint8_t _GetFlag(void) {
    uint8_t buffer[1024];
    ...
    return buffer[0] == 0x01 || buffer[0] == 0x02;
}

int main() {
    if (!_GetFlag()) {
        ...
    }
    
    // 注意: 因为static的存在_GetFlag()被优化了, buffer依然占用了栈空间不释放,导致了后面函数调用能用到的栈空间减少
    // 解决方法是去掉static, 也就是 uint8_t _GetFlag(void) { ... }
    
    ...
    
    while (1) {
        ...
    }
}

 

标签:MDK,GetFlag,...,buffer,记录,uint8,static,堆栈
From: https://www.cnblogs.com/kehuadong/p/17185835.html

相关文章

  • CF 做题记录
    CF1784C弱化版就是将序列进行排序,设\(a\)的排名为\(k\),如果\(a<k\),就将\(a\)删除(后面的数排名也相应减一),否则将\(a-k\)加入到答案中。现在我们考虑每次加一个数,......
  • 每日记录(十四)2023.03.06
    一、题目要求1、输入一个整形数组,数组里有正数也有负数。2、数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。3、求所有子数组的和的最大值。要求时间复......
  • Linux学习记录(五):环境变量
    Linux系统修改环境变量PATH一般将bin文件夹添加至PATH中,比如ffmpeg/conda等LD_LIBRARY_PATH可执行文件运行时链接库路径只在当前终端有效,终端export(对某一用户)......
  • 基于GD32F407单片机与循环队列的BIT上报学习记录
    c文件staticuint8_trx_buf[MAX_485_RX_LEN]={0};staticuint8_trx_buf_data_cnt=DATA;staticuint8_trs485TXBuf[MAX_485_RX_LEN]={0};usart_device_tusart......
  • 记录--uni-app中安卓包检查更新、新版本下载、下载进度条显示功能实现
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助需求描述如果想要做一个app的话,可以有很多种选择方案,uni-app是其中的一个性价比高一些(坑多一些)的方案。......
  • Dynamics CRM是否记录有某个用户大量下载记录的日志?
    DynamicsCRM是否记录有某个用户大量下载记录的日志?比如查看某个用户在客户实体或联系人实体上通过"导出至Excel"导出了大量数据。这个功能由Office365的审核提供,但是......
  • 记录一次锁的优化
    项目背景老规矩,先讲讲项目背景。可跳过。小工具类的微系统。我们会有一些文本语义描述的事件。譬如某小区两户人家因为宠物发生了争吵,比如某人拨打12345热线反映小区深......
  • [学习记录]dataframe的ewm()方法
    以下内容均为借鉴 JonSnow(不想当韭菜的码农不是好交易员)知乎内容,予以感谢。pandas库中的ewm(),是我学习量化以来第一个卡住的地方,越学发现和数学的紧密程度越高。DataF......
  • Echarts visualMap属性记录
            参考:https://blog.csdn.net/qq_43291759/article/details/126500770......
  • .net6 引用log4net记录日志
    第一步:nuget包引用使用log4net需要引用两个nuget包1.Log4net2.Microsoft.Extensions.Logging.Log4Net.AspNetCore第二步:引用log4net的config配置文件配置文件贴......