gpt4 book ai didi

c++ - 有符号/无符号比较警告是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:38:35 26 4
gpt4 key购买 nike

auto.cpp: In function ‘int autooo(unsigned int)’:
auto.cpp:33:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

我正在执行 makefile,我已经运行了 makefile 并制作了一个 auto.o 但我仍然收到此错误,下面是我的 autooo.cpp 和 auto.h

我不明白什么是未签名和已签名:\请帮忙

汽车.h

#ifndef function_H_
#define function_H_

int autooo(unsigned);
int interr(unsigned);


#endif /* function_H_ */

autooo.cpp

#include <iostream>   
#include <cstdlib> //for random functions
#include "prime.h"
#include "auto.h"
using namespace std;


#ifndef auto_CPP_
#define auto_CPP_

int autooo(unsigned);

int autooo(unsigned a)
{
int b=50;
unsigned numberFound = 0;

do
{
++a;

if (isPrime(a))
{
++numberFound;
cout << a << "is prime number" <<endl;
}
} while (numberFound < b);

return 0;
}

#endif

最佳答案

编译器警告该代码包含 unsigned intsigned int 的比较

while (numberFound < b);

这与 makefile 或 make 无关。

你可以通过改变来解决这个问题

int b=50;

unsigned b = 50;

或通过改变

unsigned numberFound = 0;

int numberFound = 0;

在比较 signed intunsigned int 时可能会遇到的问题在 this answer to another SO question 中有解释。

关于c++ - 有符号/无符号比较警告是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56507538/

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