c - c中的"not all control paths return a value",分数歧视

标签 c configuration warnings

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>

bool isPrime(unsigned number)
{
    unsigned i;
    for (i = 2; i < number; ++i)
    {
        if (number % i == 0)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
}

int main()
{
    unsigned int a = 0;
    scanf("%u", &a);

    bool flag = isPrime(a);
    if (flag)
    {
        printf("%u is a prime number", a);
    }
    else
    {
        printf("%u is not a prime number", a);
    }

    return 0;
}
1>------ Build started: Project: prime.c, Configuration: Debug x64
------ 1>main.c `1>C:\Users\neuez\source\repos\test\prime.c\main.c(22): warning
C4715:` 'isPrime': not all control paths  return a value

1>Done building project "prime.c.vcxproj".
======== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped =======

我想我返回了所有控制 channel 的结果,但我不知道为什么会弹出警告。

最佳答案

您的 isPrime 函数并不总是返回值。

bool isPrime(unsigned number)
{
    unsigned i;
    for (i = 2; i < number; ++i)
    {
        if (number % i == 0)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
}

如果number参数小于2会发生什么?在这种情况下,for for 循环将不会运行,并且不会执行任何 return 语句。

关于c - c中的"not all control paths return a value",分数歧视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59499365/

相关文章:

c - 如何获取 MagickWand 持有的图像数量?

configuration - 如何为 prometheus 运算符(operator)启用其他配置

git - 我应该避免在私有(private) git 存储库中使用 key 吗?

r - 警告 : closing unused connection n

C 指针和数组 : [Warning] assignment makes pointer from integer without a cast

c++ - 是否有可以忽略函数的 gcc pragma?

c - 如何将结构中的所有数据存储到新数组中?

c - 如何在 C 中将数组作为函数参数传递?

hadoop - 我可以将 pig.temp.dir 设置为/user/USERNAME/tmp/pig 吗?

java - 有没有办法忽略单个 FindBugs 警告?