当前位置: 首页 > news >正文

编译报错declaration may not appear after executable statement in block

这个错误是因为在代码块中,声明语句不能出现在可执行语句之后。也就是说,如果你在一个代码块中先写了一些可执行语句,再写了一 些声明语句,就会出现这个错误。

解决方法:将声明语句放在可执行语句之前,或者将声明语句放在代码块的开头。这样就可以避免这个错误了。

相同问题

main.c(27): error: #268: declaration may not appear after executable statement in block 回答: 这个错误是因为在C语言中,局部变量的定义必须放在所有执行语句之前,或者使用C99标准允许的任何位置。在你的代码中, GPIO_InitStruct的定义放在了执行语句之后,导致了这个错误。你可以将GPIO_InitStruct的定义放在函数开头,或者将代码改为符合C99 标准的写法。

一个简单STM32的库函数的例子,最常用的GPIO设备的初始化函数为例:

    /*****************************引脚初始化*************************************/
    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);    //使能USART1,GPIOA时钟

    //USART1_TX   GPIOA.9
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //推挽输出
    GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9

其功能是将GPIOA.9口初始化为推挽输出状态,并最大翻转速率为50MHz。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 图数据库查询语言 cypher 与 memgraph
  • vscode附着调试
  • Day47 | 110.字符串接龙 105.有向图的完全可达性 106.岛屿的周长
  • openGuass——一般元命令
  • Vue JS执行机制和nextTick
  • Python算法工程师面试整理-微积分
  • SAP商业地产管理(RE-FX)
  • 微信小程序如何存储值
  • 集成mybatis-plus框架
  • 3.3、matlab彩色图和灰度图的二值化算法汇总
  • 如何在不格式化的情况下解锁 Android 智能手机密码
  • ue5远程渲染和本地渲染的区别,及云渲染的联系
  • 【MySQL 11】索引 (带思维导图)
  • 8.4 数据库基础技术-SQL
  • http基础原理及应用
  • ES6指北【2】—— 箭头函数
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • angular组件开发
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • codis proxy处理流程
  • Docker入门(二) - Dockerfile
  • express如何解决request entity too large问题
  • Linux Process Manage
  • Python中eval与exec的使用及区别
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Redis中的lru算法实现
  • Web标准制定过程
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 排序(1):冒泡排序
  • 微信小程序开发问题汇总
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 《码出高效》学习笔记与书中错误记录
  • elasticsearch-head插件安装
  • Semaphore
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • .net 7和core版 SignalR
  • .NET CF命令行调试器MDbg入门(一)
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net core 使用js,.net core 使用javascript,在.net core项目中怎么使用javascript
  • .NET 指南:抽象化实现的基类
  • .Net多线程总结
  • .NET值类型变量“活”在哪?
  • @Autowired标签与 @Resource标签 的区别
  • [ C++ ] STL_list 使用及其模拟实现
  • [240903] Qwen2-VL: 更清晰地看世界 | Elasticsearch 再次拥抱开源!
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [BZOJ4010]菜肴制作
  • [c#基础]DataTable的Select方法
  • [Codeforces1137D]Cooperative Game
  • [Day 26] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • [dts]Device Tree机制
  • [EFI]DELL XPS13 9360电脑 Hackintosh 黑苹果efi引导文件