Могу ли я использовать return 1, return 2 или любое другое целое число вместо return 0 в функции, если она не возвращает целое число для конкретного случая? - PullRequest
1 голос
/ 21 марта 2020

вот моя функция:

int repeatedNTimes(int* A, int ASize)
{
    int i, count, j, temp;

    for(i = 0; i < ASize; ++i)
    {
        count = 0;
        temp = A[i];

        for(j = i; j < ASize; ++j)
        {
            if(A[i] == A[j])
                count++;
        }

        if(count == ASize / 2)
            return A[i];

        else
            continue;   
    }

    return 0;
}

Могу ли я использовать return 1 или return (любое целое число) вместо return 0? А во-вторых, что если я не верну целое число?

1 Ответ

1 голос
/ 21 марта 2020

Если вы не вернете целое число, то поведение не будет четко определено (возможно, не определено, но стандарт не запомнен). Ваш компилятор, скорее всего, выдаст предупреждение, если у вас есть предупреждения.

Что касается возврата целого числа, отличного от 0, да, вы можете сделать это. Важным является тип возврата функции, когда речь идет о том, что вы можете и не можете вернуть. Тем не менее, возвращение другого результата может не дать желаемого эффекта в зависимости от того, что делает ваша функция. Иногда такие значения, как ноль, зарезервированы для особых условий, например, не найдены.

...