关于一个返回值的问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 11:53:52
调用一个BOOL 型的函数,调试到 返回值 return TRUE; 这一步时错了,是怎么回事啊?请高手指教 return #; #代表数字也不可以的
为什么不能是一个具体的值呢?我用的是 VC 6.0 返回BOOL型应该很平常的,是不是之前内存泄露了还是什么

既然在调试过程中才出现问题,说明语法没有问题。

BOOL 和 int是等价的,它就是:
typedef int BOOL;

所以你可以用任何int值来代替TRUE和FALSE,但只有0值表示FALSE,其他非0值都表示TRUE

你的这种情况非常像前面有的地方发生了内存泄露,内存泄露时经常会出现奇怪的问题,这种Bug也是最难发现的,好好检查一下你的代码吧。祝你好运!

有一次我的程序里:
a=1:
但比较时
if(a==1)
{
//就是进不到这里,原因就是前面有地方发生里内存泄露
}

return 应该不会出错的, 可能是 BOOL, TRUE这些没有定义, 你可以改用bool true,
windows里面是这样定义 的,
typedef long BOOL;
#define FALSE 0
#define TRUE 1
你可以手动再定义一次

建议你看看return语句的用法
返回是一个变量或表达式的值,而不应该是某个具体的值,如TRUE

应该不是返回值问题,函数在析构局部对象的时候发生的异常,好好检查一下没New的局部对象的析构函数写的有没有问题。

估计是TRUE没被定义,你看看是不是什么头文件没被包含进去。