| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5170 人关注过本帖
标题:关于C语言的Bool类型是如何实现的。。。
只看楼主 加入收藏
thlgood
Rank: 5Rank: 5
等 级:职业侠客
帖 子:281
专家分:381
注 册:2010-9-24
结帖率:91.43%
收藏
 问题点数:0 回复次数:10 
关于C语言的Bool类型是如何实现的。。。
程序代码:
#include <stdio.h>
#include <stdbool.h>

int main()
{
    bool x = true;
    if (x)
    {
        printf("Yes, it's ture!\n");
        x = 10;
        if (x == 10)
            printf("Yes, x == 10\n");
        else
            printf("The value of x is %d\n", x);
    }
    return 0;
}


在上面这个程序中,把10附给x之后x的值依然是1,从技术上如何实现?
搜索更多相关主题的帖子: 如何 C语言 
2011-11-07 07:33
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 楼主 thlgood
上网搜,关键字"c语言 bool"

总有那身价贱的人给作业贴回复完整的代码
2011-11-07 08:48
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 楼主 thlgood
看看这个 http://wapapp.baidu.com/wapshare/detail/21993824?ssid=0&from=125v&uid=wiaui_1312547652_514&pu=usm%400%2Csz%40475_713&bd_page_type=1
我是用手机搜的,不知道你能不能打开

总有那身价贱的人给作业贴回复完整的代码
2011-11-07 08:50
thlgood
Rank: 5Rank: 5
等 级:职业侠客
帖 子:281
专家分:381
注 册:2010-9-24
收藏
得分:0 
回复 2楼 embed_xuel
我是搜索之后再发帖的。。。。

我不关注bool如何适用,我关注这个bool是如何实现的,为什么执行x = 10之后x的值依然是1?

o(∩∩)Linux & Python 群:187367181
2011-11-07 10:38
zwhgudu1314
Rank: 1
等 级:新手上路
帖 子:22
专家分:7
注 册:2011-3-3
收藏
得分:0 
枚举类型。只有零或一。但枚举类型不能赋值。所以还是不太明白。
2011-11-07 12:10
zwhgudu1314
Rank: 1
等 级:新手上路
帖 子:22
专家分:7
注 册:2011-3-3
收藏
得分:0 
stdbool是不是自己的头文件啊?怎么我在C和C++都找不到。
2011-11-07 12:19
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:0 
首先这不是枚举类型
bool这个只有0和1,真的数值就是1,假的数值就是0
换句话说,只有0是假的,非0就是真的,就是1
当把10附给x之后,就是说x非0,那么就是1
2011-11-07 12:25
thlgood
Rank: 5Rank: 5
等 级:职业侠客
帖 子:281
专家分:381
注 册:2010-9-24
收藏
得分:0 
@6楼
stdbool.h是C99标准里加进去的。。不是我自己写的,是系统带的。

我在Linux下用gcc就可以用到。Windows下的VC++貌似不支持C99标准。不知道Windows下用MinGw支不支持


@7楼
我不是C语言新手,这个我是知道的,我关注的是这个bool类型是如何实现的。换句话来说就是,如果我想定义一个数据类型,该数据类型具有bool的特征,那么我该如何定义。

o(∩∩)Linux & Python 群:187367181
2011-11-07 12:37
cosam
Rank: 4
等 级:业余侠客
帖 子:146
专家分:259
注 册:2011-8-25
收藏
得分:0 
说到底楼主最想知道bool类型的false与true在内存里面显示模型。
如果真的想弄懂,试一下反汇编。
从汇编代码里看一下究竟发生了什么事。
bool x =true;
x =10;
这样的赋值会截断数据,这里的10不是int的型。
2011-11-07 13:02
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 4楼 thlgood
既然你关注,就去看反汇编,这样最清楚

总有那身价贱的人给作业贴回复完整的代码
2011-11-07 13:17
快速回复:关于C语言的Bool类型是如何实现的。。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017101 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved