Keil (MDK)中变量定义位置
在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)中变量定义位置相关推荐
- c语言变量定义位置区别,C语言中变量定义的位置(C89和C99的区别)
C语言中变量定义的位置(C89和C99的区别) 在C++和JAVA中,按照语法,我们可以把变量定义在任何位置,所以很多人习惯了"哪里使用哪里定义"的这种做法,所以当用C语言进行编程 ...
- keil(MDK)中出现error: #513:
keil(MDK)中出现error: #513: a value of type "int" cannot be assigned to an entity of type &qu ...
- KEIL MDK中的RO、RW和ZI
KEIL MDK中的RO.RW和ZI DATA理解及KEIL中ROM和RAM使用大小计算 (2013-12-25 09:33:06) 转载▼ 标签: it 分类: 嵌入式相关 本文来源与网络 http ...
- 在Keil MDK中创建STM32F4系列的工程模板(标准外设库)
在Keil MDK中创建STM32F4系列的工程模板(标准外设库) 一.前往ST官网下载标准外设库 二.根据个人风格创建文件夹目录 三.创建MDK工程,创建分组 四.添加系统启动必要源文件 五.添加头 ...
- keil MDK中如何生成*.bin格式的文件
在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件.虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯 ...
- 【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 ...
- C语言中变量定义的位置
今天编了一道C语言程序,编译的时候,出现错误,源码如下: //输入一行字符串,统计大小写字母,空格的个数 #include<stdio.h> #include<string.h> ...
- Keil MDK 中利用串口及c标准库函数printf为cortex-m3做调试输出(lpc1788)
摘要: c标准库的printf是输出给显示器的,将printf函数进行修改,使其输出重定向至串口,就能实现目的.printf函数调用fputc函数完成实质输出单一字符的工作,因此将fputc函数修改使 ...
- Keil MDK中编译连接选项--keep的用法
使用Keil mdk编程,假如有一个有用的函数你定义了但是没有显式的调用,mdk在默认编译链接时,将会把这个函数从整个程序总删除掉,以节省ROM. 比如,你在ROM的0x00010000处定义了一个函 ...
- 解决KEIL MDK中JLINK烧录代码时提示the connected jlink is defective问题
1.问题分析 网上有许多分析这个问题的博客,可以去参考 2.解决方法 a.在segger.com的官网下载了6.5版本的jlink驱动文件,安装后C:/program file(x86)/Segger ...
最新文章
- python结果输出到文件-python print输出到文件
- github流程图_「强烈推荐」开源的在线流程图工具--draw.io
- jQuery实战读书笔记(第五章)
- 十七、去年jQuery的笔记
- x86的32位汇编快速入门
- Html富文本编辑器
- C++ concurrency::task实现异步编程(Windows)
- oracle没有自带的程序吗,oracle – 空包定义(没有公共成员)
- Unity学习资料收集
- 计算机没有安装鼠标和键盘驱动,鼠标不能用如何安装驱动程序-使用键盘安装鼠标驱动的方法 - 河东软件园...
- Altium Designer——usb信号线布线注意的问题——应使用差分布线
- C++线程池原理及创建
- 武学大陆-为啥要学IT绝世武功
- 家用智能洗地机哪个牌子好、洗地机品牌排行榜前十名介绍
- python---flask
- Python lambda 介绍
- PC - 史上最简单的远程访问群晖 NAS 方法
- 压力传感+数字开关混合传感集成人机交互面板
- 解决esp-idf-5.0编译时报错:Component “tinyusb“ does not support target esp32
- Dynamics AX2012 AOT同步到VS