社区
C++ 语言
帖子详情
C++调试时发现bool形参数变为int形的85471236这样的数
TerryZhao1086
2008-04-10 11:03:17
我在调试C++程序时发现函数中bool形参数变为int形的85471236这样的数。
我测试了一下发现VC中是把bool形的true给解释为unsigned char 1的,
而把false解释为unsigned char 0的。我不清楚我的程序是怎么回事?
...全文
115
11
打赏
收藏
C++调试时发现bool形参数变为int形的85471236这样的数
我在调试C++程序时发现函数中bool形参数变为int形的85471236这样的数。 我测试了一下发现VC中是把bool形的true给解释为unsigned char 1的, 而把false解释为unsigned char 0的。我不清楚我的程序是怎么回事?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
TerryZhao1086
2008-04-10
打赏
举报
回复
akirya,我估计这个应该是和编译器有关吧。你的编译器
应该不是VC6吧
TerryZhao1086
2008-04-10
打赏
举报
回复
我在想是不是bool形的参数在传入函数以前就被修改了。
我在代码中找找看看有没有修改的操作
珍惜生命远离CPP
2008-04-10
打赏
举报
回复
至于VC6我就不测试了.有错误正常
珍惜生命远离CPP
2008-04-10
打赏
举报
回复
输出a的值
显示的是 bl true
TerryZhao1086
2008-04-10
打赏
举报
回复
2楼,你看一下这个小程序。在VC++6.0中调试一下,设置断点。看看堆栈好像就是我说的情况。
#include <iostream>
using namespace std;
void booltest(int a,bool bl)
{
if(a>0&&bl==true)//设断点
cout<<a<<endl;
}
void main(void)
{
booltest(10,true);//设断点
getchar();
}
taodm
2008-04-10
打赏
举报
回复
VC6吧。升级到VC2005express再讨论吧。
ouyh12345
2008-04-10
打赏
举报
回复
true的具体值跟编译器有关
一般0为false,非0为true,不一定得是1
珍惜生命远离CPP
2008-04-10
打赏
举报
回复
不会吧,我这里调试看到的bool类型的都是true或者false
Treazy
2008-04-10
打赏
举报
回复
那得看你传进去的是什么了
珍惜生命远离CPP
2008-04-10
打赏
举报
回复
当然是VC9
过去的我
2008-04-10
打赏
举报
回复
堆栈 booltest(int 0x0000000a, unsigned char 0x01)
没有发现特殊情况
相关推荐
快乐
数
1、题目 编写一个算法来判断一个
数
n 是不是快乐
数
。 「快乐
数
」定义为:对于一个正整
数
,每一次将该
数
替换为它每个位置上的
数
字的平方和,然后重复这个过程直到这个
数
变为
1,也可能是 无限循环 但始终变不到 1。如果 可以
变为
1,那么这个
数
就是快乐
数
。 如果 n 是快乐
数
就返回 True ;不是,则返回 False 。 2、解题 func isHappy(n
int
)
bool
{ var isEixst map[
int
]
bool
isEixst = make(map[
int
]
bool
)
c++
对c的增强
1.全局变量的检测增强,
c++
检测除重定义 2.函
数
检测的增强, 检测出返回值类型检测,
形
参
数
类型检测, 函
数
调用参
数
个
数
. 3.类型转换检测增强: char *p = (char *)malloc(64);,
c++
必须左右类型一致 4.struct的增强,
c++
的结构体可以有函
数
.
c++
创建结构体可以简化关键字struct. 5.
bool
类
形
的扩展,c没有
bool
类型,
c++
有 6.三目运算符的增强. c:
int
a = 10;
int
b = 20; prinf("%d\n", a >
C++
I/O标准库
C++
学习: 返回指向函
数
的指针:
int
(*ff(
int
))(
int
*,
int
) 想写好这样的代码很难,含义:首先将ff声明为一个函
数
,它带有一个
int
形
参
。该函
数
返回
int
(*)(
int
* ,
int
) 这是指向函
数
的指针,所指向的函
数
返回
int
型,并带有两个
形
参
,如果使用 typedf可以简化该函
数
typedf
int
(*PF)(
int
*,
int
) PF f
C++
函
数
指针
1、函
数
指针
形
参
void func1(const string &,
bool
(const string &,const string &)); 2、返回指向函
数
的指针
int
(*ff(
int
))(
int
*,
int
); 这个声明的含义为: ff(
int
),将ff声明为一个函
数
,它带有一个
int
型的
形
参
,该函
数
返回
int
(*)(
int
*,
int
); ...
C++
中operator<<调用顺序问题
今天
发现
一个奇怪的问题,有一个函
数
,该函
数
会记录原来的状态,调用一次以后,下次调用就会使用原来的结果,从而提高性能,假如函
数
是这样的
int
GetValue(
bool
update=false); 如果update=true则更新其值,否则不更新.在测试
时
我这样输
发帖
C++ 语言
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
6.3w+
社区成员
25.0w+
社区内容
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2008-04-10 11:03
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下