关于sig_atomic_t 默认的实际是int类型(在gnu里是这样的最起码)
而其初始值,让人迷惑,居然判断其初始值为任何值都对。
- #include <signal.h>
- #include <stdio.h>
- int main(){
- sig_atomic_t flag;
- int fl;
-
- if(flag == 1 )
- printf("sizeof = %d\n", sizeof(flag));
- // if(fl == 1) //当有这一句时,结果是什么都不现实,当没有时,两个都显示。
- printf("flag = %d\nfl = %d\n",flag, fl);
- return 0;
- }
没有if(fl == 1)这一行的时候,把flag的值改为0,1;结果都是显示的两个随机数当有if(fl == 1)这一行时,两个结果都不显示。
所以最好一开始就对其初始化,一面出现错误。
阅读(674) | 评论(0) | 转发(0) |