在keil中编译程序时提示:error: #268: declaration may not appear after executable statement in block 错误,

说是声明不能在执行语句后,也就是说变量的声明写在了使用语句的后面,导致程序在编译链接时,

使用到该变量的语句找不到这个变量,故出错。

这其实与keil所采用的标准有关,Keil5(版本是5,14.2)默认采用C89标准,

//报错代码
flag = 0;
u16 i = 0;

这个标准要求在编写程序时变量不能放在函数体中间,只能在函数最开始定义或声明变量。如何修改呢?

方法1

将变量都放在函数最开头,且注意变量在函数体中出现的先后顺序,应该按照后面使用的顺序进行定义或声明变量,否则仍会报同样的错。

//修改代码
u16 i = 0;
flag = 0;

方法2

将keil的标准改为C99,重新编译即可。如图所示,在option的C/C++标签中勾选上C99 Mode 选项(在中间右侧)。

方法3

转载于:https://www.cnblogs.com/ys77/p/11541775.html

Keil (MDK)中变量定义位置相关推荐

  1. c语言变量定义位置区别,C语言中变量定义的位置(C89和C99的区别)

    C语言中变量定义的位置(C89和C99的区别) 在C++和JAVA中,按照语法,我们可以把变量定义在任何位置,所以很多人习惯了"哪里使用哪里定义"的这种做法,所以当用C语言进行编程 ...

  2. keil(MDK)中出现error: #513:

    keil(MDK)中出现error: #513: a value of type "int" cannot be assigned to an entity of type &qu ...

  3. KEIL MDK中的RO、RW和ZI

    KEIL MDK中的RO.RW和ZI DATA理解及KEIL中ROM和RAM使用大小计算 (2013-12-25 09:33:06) 转载▼ 标签: it 分类: 嵌入式相关 本文来源与网络 http ...

  4. 在Keil MDK中创建STM32F4系列的工程模板(标准外设库)

    在Keil MDK中创建STM32F4系列的工程模板(标准外设库) 一.前往ST官网下载标准外设库 二.根据个人风格创建文件夹目录 三.创建MDK工程,创建分组 四.添加系统启动必要源文件 五.添加头 ...

  5. keil MDK中如何生成*.bin格式的文件

    在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件.虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯 ...

  6. 【Keil MDK中工程报错Browse information of one of more files is not available解决方法】

    [Keil MDK中工程报错Browse information of one of more files is not available解决方法] 今天在进行工程编写时,出现了这个错误Browse ...

  7. C语言中变量定义的位置

    今天编了一道C语言程序,编译的时候,出现错误,源码如下: //输入一行字符串,统计大小写字母,空格的个数 #include<stdio.h> #include<string.h> ...

  8. Keil MDK 中利用串口及c标准库函数printf为cortex-m3做调试输出(lpc1788)

    摘要: c标准库的printf是输出给显示器的,将printf函数进行修改,使其输出重定向至串口,就能实现目的.printf函数调用fputc函数完成实质输出单一字符的工作,因此将fputc函数修改使 ...

  9. Keil MDK中编译连接选项--keep的用法

    使用Keil mdk编程,假如有一个有用的函数你定义了但是没有显式的调用,mdk在默认编译链接时,将会把这个函数从整个程序总删除掉,以节省ROM. 比如,你在ROM的0x00010000处定义了一个函 ...

  10. 解决KEIL MDK中JLINK烧录代码时提示the connected jlink is defective问题

    1.问题分析 网上有许多分析这个问题的博客,可以去参考 2.解决方法 a.在segger.com的官网下载了6.5版本的jlink驱动文件,安装后C:/program file(x86)/Segger ...

最新文章

  1. python结果输出到文件-python print输出到文件
  2. github流程图_「强烈推荐」开源的在线流程图工具--draw.io
  3. jQuery实战读书笔记(第五章)
  4. 十七、去年jQuery的笔记
  5. x86的32位汇编快速入门
  6. Html富文本编辑器
  7. C++ concurrency::task实现异步编程(Windows)
  8. oracle没有自带的程序吗,oracle – 空包定义(没有公共成员)
  9. Unity学习资料收集
  10. 计算机没有安装鼠标和键盘驱动,鼠标不能用如何安装驱动程序-使用键盘安装鼠标驱动的方法 - 河东软件园...
  11. Altium Designer——usb信号线布线注意的问题——应使用差分布线
  12. C++线程池原理及创建
  13. 武学大陆-为啥要学IT绝世武功
  14. 家用智能洗地机哪个牌子好、洗地机品牌排行榜前十名介绍
  15. python---flask
  16. Python lambda 介绍
  17. PC - 史上最简单的远程访问群晖 NAS 方法
  18. 压力传感+数字开关混合传感集成人机交互面板
  19. 解决esp-idf-5.0编译时报错:Component “tinyusb“ does not support target esp32
  20. Dynamics AX2012 AOT同步到VS

热门文章

  1. python爬虫cookie
  2. 学习之学习--混沌大学商学院--第一课--HHR计划
  3. Android编译环境搭建
  4. Windows安装和设置教程
  5. 多线程练习题(双色球)
  6. excel表格末尾添加一行_Excel2007:给excel表格添加边框线
  7. Google今日涂鸦:纪念居里夫人诞辰144周年
  8. 单片机c51语言考试试题,51单片机基础知识试题题库(考试用含答案)
  9. 安骑士主要功能(云盾服务器安全)
  10. idea去掉UML类图的虚线箭头(依赖关系)