Void vs Int Функции - PullRequest
       24

Void vs Int Функции

3 голосов
/ 10 октября 2011

В чем разница между функциями void и int?Когда я использую что?Будет ли использоваться void при распечатке сообщения или значения переменной?как cout << value; </p>

Или это будет просто текст?

И используется ли int, когда вы фактически выполняете вычисления внутри него?

Ответы [ 8 ]

5 голосов
/ 10 октября 2011

void используется, когда вам не требуется возвращать что-либо из функции вызывающей функции.

например.

void no_return_fn()
{
    cout<< "This function will not return anything" << endl;
    return; // returns nothing or void

}

int используется, когда необходимо вернуть целое значение из функции в вызывающую функцию

например,

int return_sum_of_integers_fn(int a, int b)
{
    cout<< "This function returns an integer" << endl;
    return (a + b); // returns an integer
}
4 голосов
/ 10 октября 2011

Вы хотите, чтобы функция возвращала что-нибудь?Если нет, то это должно быть void.Если вы хотите, чтобы он возвращал int, тогда он должен быть int.Если вы хотите, чтобы он возвращал что-то еще, тогда он должен иметь другой тип возврата.

1 голос
/ 10 октября 2011

когда вы используете void, это означает, что вы не хотите ничего возвращать из функции.в то время как возвращение int может быть результатом вычисления в функции или указывать состояние при его возврате, например, номер ошибки или что-то еще, что может сказать вам, что произошло при выполнении функции.

1 голос
/ 10 октября 2011

Некоторые предпочитают использовать функции, которые возвращают int для указания некоторых ошибок или особых случаев. Рассмотрим этот код:

int print (int* ptr)
{
    if (ptr == NULL)
    {
        return -1; // Error code.
    }

    std::cout << *ptr;

    return 1; // Success code.
}
0 голосов
/ 22 марта 2016

Другое отличие состоит в том, что функция void не требует возврата внутри: Эти 2 фрагмента кода действительны и не генерируют предупреждение компилятора: Фрагмент 1

void msg1()
{
    cout<< "This is a message." << endl;
    return; // returns nothing or void

}

Фрагмент 2

void msg2()
{
    cout<< "This is a message." << endl;
}

Оба имеют одинаковое поведение, и предупреждение не отображается.

Если вы объявляете функцию не void и не возвращаете значение, ваш компилятор, скорее всего, отобразит ПРЕДУПРЕЖДЕНИЕ, например, «предупреждение: нет возврата в функции, возвращающей не void».

Это зависит от параметров модификатора, отправленных компилятору, отображается эта ошибка или нет.

Этот код, скорее всего, отображает предупреждение компилятора, так как нет возврата:

int test(){
    printf("test");
}
0 голосов
/ 22 января 2014

На самом деле, это необходимо, если вы компилируете свой код для хост-системы, такой как ПК, Linux, Mac, Android.Тогда main должен вернуть int.Если вы компилируете код для автономной системы, такой как встроенные микроконтроллеры, или если вы создаете ОС, тогда тип возвращаемого значения main может быть любым.

Хотя при использовании int или void ошибки не будетно это не соответствует требованиям стандарта С.

0 голосов
/ 25 мая 2013

Как вы слышали выше, void не возвращает значение, поэтому вы используете его, когда вам это не нужно. Например, вы можете использовать «void» не только для печати текста, но в основном для изменения параметров (изменения того, что у вас уже есть), поэтому вам не нужно возвращать значение.

Допустим, вы хотите найти int c, то есть сумму двух (целых) чисел, a и b (то есть a + b = c). Вы можете написать функцию, которая добавляет эти числа и присваивает их значение c

int c;
int sum (int a, int b)
{
    return a+b;     
}       

c = sum(a,b);

При использовании void вы просто модифицируете c, поэтому вместо записи c = function(arguments) у вас будет function(c), который изменяет c, например:

int c;
void sum(int a, int b, int c)
    {
        c = a+b;
    }

sum(a,b,c);

После последней строки 'c' у вас равно сумме 'a' и 'b': -)

0 голосов
/ 10 октября 2011

Вы возвращаете void, чтобы указать, что ничего не возвращено.

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

...