gpt4 book ai didi

c - For循环条件

转载 作者:太空宇宙 更新时间:2023-11-04 02:38:15 25 4
gpt4 key购买 nike

#include <stdio.h>
#define all_mem (sizeof(x) /sizeof(x[0]))
int x[] ={1,2,3,4,5,6,7,8,9,10};

int main(void) {
// printf("The condition is %d",(all_mem-2));
int i;
for(i=-1;i<=(all_mem-2);i++)
{
printf("The number is %d",i);
}
return 0;
}

在上面的代码中,for 循环甚至没有执行一次,我尝试了打印条件并且它满足 for 循环条件。任何见解如何将 for 循环条件中的宏表达式评估为小于 -1 的值?

最佳答案

all_mem宏返回 size_t值(value);整数提升规则意味着比较i <= (all_mem - 2)正在推广isize_t , 这意味着该值很大,而不是 -1 .尝试转换以确保签名比较:

for(i = -1; i <=(ssize_t)(all_mem- 2); ++i)

关于c - For循环条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34625487/

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