问题汇总 -- 系统,环境类

这篇博客总结了多种系统和编程环境中的常见问题,包括IAR程序无法启动与全局变量大小关联,C语言中连续比较的陷阱,信号处理的三种方式,TCP通讯中断后的处理,以及程序异常死机可能的原因——数据类型错误。这些问题揭示了在软件开发和系统操作中需要注意的关键细节。
摘要由CSDN通过智能技术生成

1. IAR程序下载后,一切正常,但无法启动。 --- 全局变量过大。

类似的问题再次遇到,在Linux环境下,对于一个全局变量的值进行显示,不过总会显示不全或者起始内容与逻辑不一致,后来发现是全局空间满,删除部分全局变量后,此问题消失。


2.C语言:

关于连续使用大于号/小于号的问题

请看下面一段代码:

 

int main()

{

         int  a = 0x35;

         intres ;

 

         res= (0 > a < 0x39);

         printf("res:%d\n",res);

 

         return0;

}

编译过程中,提示:“warning C4804: '<' : unsafe use of type 'bool' in operation”

在Windows XP VC6.0 编译后,结果是:res:1

在Fedora8 GCC 编译后,结果是:res:1

 

就是说,对于连续的大小符号进行判断,一般而言编译器是从左到右进行运算。先是进行 0>a 的判断,得到结果是1,然后是 1<0x39 的判断,结果为 1。

 

因此,如果要判断a是否在10-99之间,这样的语句if(99 > a > 10)这样很危险࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值