[AVR单片机] GCC的奇怪问题

[复制链接]
2268|8
 楼主| 472666GAQ 发表于 2010-9-7 10:48 | 显示全部楼层 |阅读模式
char a=-6;

if(a<0){这里的程序为什么永远也没法执行呢}


还有就是 -a/4   和a=-a   a/4的结果为什么不一样呢!
airwill 发表于 2010-9-7 12:00 | 显示全部楼层
编译器强制将 char 设定为 unsigned 类型了.
可以写成 signed char 嘛.
当然也可以取消这个强制, 看 mak 文件吧.
 楼主| 472666GAQ 发表于 2010-9-7 13:11 | 显示全部楼层
 楼主| 472666GAQ 发表于 2010-9-7 13:12 | 显示全部楼层
你说看mak   在什么地方呢
heleixue 发表于 2010-9-7 14:02 | 显示全部楼层
还有就是 -a/4   和a=-a   a/4的结果为什么不一样呢!
a=-a   a/4先将-a值付给a,然后a再除4.
执行后a的值变成-a了。
而-a/4 执行后a的值没变
宇宙飞船 发表于 2010-9-7 22:49 | 显示全部楼层
在makefile 文件内把  force  unsigned char 的选项注释掉。
 楼主| 472666GAQ 发表于 2010-9-8 07:21 | 显示全部楼层
这些信息是从哪得到呢   看mak   在什么地方呢   谢谢飞船了
宇宙飞船 发表于 2010-9-8 12:27 | 显示全部楼层
本帖最后由 宇宙飞船 于 2010-9-8 12:30 编辑

在XP的开始菜单---->程序---->附件---->点击DOS 命令行提示符方式,
例如 avr-gcc.exe  在c:\Winavr\bin 录。
cd  c:\Winavr\bin   // 绝对路径进入
然后
avrgcc  -v  --help   >  my.txt   
//把GCC的帮助文档打印出来并重新定位于 my.txt 文件,若不用>重定位符, 缺省是打印到屏幕。
然后就可以用记事本打开my.txt 查看avr-gcc 的帮助了。
其中就有 funsigned - char 的英文解释。
 楼主| 472666GAQ 发表于 2010-9-8 13:59 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

285

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部