AVR的一个奇怪问题。变量定义出错,改了下位置又可以了。怎么回事?

APM60- 2009-03-26 10:40:27
变量定义写在引脚定义的后面就出错。写在开头可以编译通过。

void main(void){

unsigned char BT_FLG;

DDRA = 0x00; /*方向输入*/
PORTA = 0xFF; /*打开上拉*/
DDRB = 0xFF; /*方向输出*/
PORTB = 0xFF; /*高电平*/
DDRC = 0x00;
PORTC = 0xFF;
DDRD = 0x00;
PORTD = 0xFF;
Uart_Init();

//unsigned char BT_FLG;//写在这个位置就出错

错误信息:
!E E:\AVR\示例程序\0010-UART-LED-B\b_uart.c(57): illegal statement termination
!E E:\AVR\示例程序\0010-UART-LED-B\b_uart.c(57): skipping `unsigned' `char'
!E E:\AVR\示例程序\0010-UART-LED-B\b_uart.c(57): undeclared identifier `BT_FLG'
!W E:\AVR\示例程序\0010-UART-LED-B\b_uart.c(57):[warning] expression with no effect elided
====================================
请问是编译器的原因还是单片机程序里位置有严格要求?
请解释下原因,谢谢。
...全文
239 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
乐于编程 2009-03-29
  • 打赏
  • 举报
回复
基础知识要扎实。
APM60- 2009-03-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 friendfish 的回复:]
怎么又发同样的贴?
[/Quote]
不是我想发同样的贴,浏览器抽筋~,我看没反应就点了2次发布。囧

今天买了块LCD1602,自己做了根线,插上能用,高兴~

3天内结贴。
friendfish 2009-03-27
  • 打赏
  • 举报
回复
怎么又发同样的贴?
C语言的语法要求~
lzz007 2009-03-27
  • 打赏
  • 举报
回复
多看书啊!!!
guetcw 2009-03-27
  • 打赏
  • 举报
回复
C语言明确规定,变量定义要在代码语句前,又不是C++编译器。

27,370

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧