Chinaunix首页 | 论坛 | 博客
  • 博客访问: 474282
  • 博文数量: 120
  • 博客积分: 1853
  • 博客等级: 上尉
  • 技术积分: 1177
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-22 22:40
文章分类

全部博文(120)

文章存档

2013年(16)

2012年(104)

分类: LINUX

2012-05-11 11:20:14

关于sig_atomic_t 默认的实际是int类型(在gnu里是这样的最起码)
而其初始值,让人迷惑,居然判断其初始值为任何值都对。

点击(此处)折叠或打开

  1. #include <signal.h>
  2. #include <stdio.h>


  3. int main(){
  4.     sig_atomic_t flag;
  5.     int fl;
  6.     
  7.     if(flag == 1 )
  8.     printf("sizeof = %d\n", sizeof(flag));
  9. //    if(fl == 1) //当有这一句时,结果是什么都不现实,当没有时,两个都显示。
  10.     printf("flag = %d\nfl = %d\n",flag, fl);

  11.     return 0;
  12. }
没有if(fl == 1)这一行的时候,把flag的值改为0,1;结果都是显示的两个随机数
当有if(fl == 1)这一行时,两个结果都不显示。
所以最好一开始就对其初始化,一面出现错误。
阅读(651) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~