我遇到了几个恶心的问题

2019-07-21 05:04发布

问题1.在判断时 if(A<=-3){执行里面的};    //    signed char A; 这么判断貌似不行;判断有可能是错的。你们遇到过吗?
问题2.调试时候查看缓冲区。比如BUF[0]里放0xFA作针头,结果用keil4看。有的时候他本来确确实实已经放到了BUF[0]的位置上。却在调试工具里显示放到的位置在BUF[4];其中BUF[0 1 2 3]都显示0X00;这问题我老遇到。不过感觉是因为缓冲区自身内存分配的问题。。

问题3.你们写函数 写过这样的函数吗?或者这样写能行吗?
就是while1里嵌套while1; 比如:
while(1)
{
   if(A==3)
  {while(1)
     {。。。。}
  }
}
问题4;我发现在if里做运算。判断结果就错求了比如  if((A-B)>0){我就干嘛干嘛}。。。我这么写代码结果是错的。
问题5;我的KEIL改成51后。就不能看变量的10进制数了。导致现在很麻烦。请问谁有小软件。能把各种有符号的16位数。或者8位数。直接转成10进制的数这样的小软件。。。谁有给我一个。。



一共5个问题。请认真的朋友一一回答。。。做好标记的回答如:
1.我怎么怎么怎么。

2.应该怎么怎么。
3 。不会。
4.没遇到过。
5.不给
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-21 08:47
1,没遇到过.
2,检查你怎么存这些数据的.
3,写过,可以.
4,没遇到过你说的出错情况.我也经常这么用,但是写屡试不爽.
5,没...

楼主是一堆的c语言基础问题,完全可以写代码仿真验证.
敌害
2楼-- · 2019-07-21 14:40
回复【2楼】正点原子:
---------------------------------
过去用STM32就没出现过这些问题。我改用新华龙C51内核后。这些问题就出来了。过去写东西从来不节约。现在写个变量都的考虑考虑。。烦死了
ST-FAE-SALE
3楼-- · 2019-07-21 18:51
那你用新华龙的C51你要确认下他的编译器是否是这样支持的,或许你可以将问题1 的数据打印出来看下。
aleda303
4楼-- · 2019-07-21 20:51
1 . char  和 signed char 在 部分编译器里面 默认是 无符号的。[一般在单片机和ARM平台中,为了效率考虑]
2 . 试一试 直接输出来,而不要用调试
3 . 可以 没问题
4 . 肯定你条件写错了
5 . 回头给你传个
aleda303
5楼-- · 2019-07-21 23:20
 精彩回答 2  元偷偷看……

一周热门 更多>