gpt4 book ai didi

c - 每次填充 64 个整数时,我都想要一个确认打印。 ?如何检查我是否 == 64

转载 作者:太空宇宙 更新时间:2023-11-04 01:17:32 24 4
gpt4 key购买 nike

#include <stdio.h>

int main() {
int i;
int *buff;
int j = 0;
buff = malloc(sizeof(int) * 512);

for (i = 0; i < 512; i++) {
buff[i] = i;
if (i & 0x7f == 64) {
j++;
printf("completed %d part out of total %d parts ints\n", j, 512 / 64);
}
}
printf("filling completed\n");

return 0;
}

但程序控制永远不会进入 for 循环内的 if 语句。我想在每次填充 64 个整数时得到一个打印语句。

谢谢。

最佳答案

这是一个简单的运算符优先级错误。 == 绑定(bind)比 & 更强。你需要写:

if((i&0x7f) == 64)

另请注意,这可能不是您想要的,因为它会在 i 为 64+n*128 时打印;

你可以简单地使用:

if(i%64 == 0)

正如评论中所指出的,如果你想在 64 ints 被写入 buf 时打印,你应该将条件更改为:

if(i%64 == 63)

因为当 i 等于 0 时,你已经写入了一个元素。

关于c - 每次填充 64 个整数时,我都想要一个确认打印。 ?如何检查我是否 == 64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54279133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com