CSAPP的数据实验室(isTmax):!似乎不起作用

wwtsj6pe  于 2023-10-16  发布在  其他
关注(0)|答案(1)|浏览(122)

我的想法就像这个问题。i代码isTmax如下:

int isTmax(int x) {
  return  !((~x)+(~x)); // it should be right, the operator "!" seem to not work
}

x是2s补码,32位整数表示,当我使用btest来测试函数时,它生成如下:
错误:测试isTmax(2147483647[0x 7 fffffff])失败..给出0[0x 0]。应该是1[0x 1]

我的问题是:为什么是0?好像是。不工作

另外,我在运行btest时得到警告:
btest.c:在函数“test_function”中:btest.c:334:23:warning:'arg_test_range' may be used uninitialized [-Wmaybe-uninitialized] 334|如果(arg_test_range[2] < 1)|~~注意:这里声明了'arg_test_range' 299| int arg_test_range[3];/* 每个参数的测试范围 */|^^
也许我的实验室环境有问题

dxxyhpgq

dxxyhpgq1#

这只是一个警告消息,不会影响您的测试。您可以在makefile中使用-w来忽略此警告

相关问题