С++ Void - что сие есть?

  • Автор темы Автор темы toto
  • Дата начала Дата начала
T

toto

Всем привет!
Начинаю постигать самые-самые азы С++ и дошёл до void и не могу до конца понять что это такое, вернее даже как с этим работать?
Гуглил и читал несколько вариаций определения void, но так и не дошло :rolleyes: .
Если кто-нибудь может, то приведите самый-самый примитивный пример с использованием void и без него с пояснением почему и как на пальцах для самых глупых.
Пожалуйста, когда просмеётесь или наворчитесь от глупости вопроса, всё же ответьте!
Спасибо за внимание!
 
всё достаточно просто...
если тебе ничего не нужно возвращать через имя функции - то ставь void (пусто) - т.е. не нужно будет писать return...

функции считает синус =)
void my_sin(float x; float *rez)
{
rez=sin(x);
}

float my_sin(float x)
{
return sin(x);
}

ввод массива
здесь достаточно юзать void, ибо вернуть через имя функции весь массив нельзя, точнее можно... но пока думай что нельзя =) не забивай голову сразу
void array_input(int n, int *a)
{
for (int i=0;i<n;i++) scanf("%d",&a);
}

тоже самое, но через имя теперь вернется никому не нужный нуль =) хотя это можно использовать для определения ошибки в функции, т.е. если по выполнению - вернулся не нуль, значит где-то косяк
float array_input(int n, int *a)
{
for (int i=0;i<n;i++) scanf("%d",&a);
return 0;
}
 
здесь достаточно юзать void, ибо вернуть через имя функции весь массив нельзя, точнее можно... но пока думай что нельзя =) не забивай голову сразу
Ахринеть.. раза 4 перечитал фразу пока понял..

Добавлено:
Слушайте этого дядю. Он умный)
 
Senset
Прокомментируй или даже пропиши, пожалуйста, словами каждую строчку. Это бы мне очень помогло и избавило бы от вопросов. Кое-что я знаю, а кое-что меня путает.
Понимаю, что уже возможно похоже на наглость, но было бы очень здорово.
Спасибо!)
 
ввод массива
здесь достаточно юзать void, ибо вернуть через имя функции весь массив нельзя, точнее можно... но пока думай что нельзя =) не забивай голову сразу
Во как загнул))) ржу - не могу)))) Но по сути в словах смысла очень много)))
 
Начинаю постигать самые-самые азы С++ и дошёл до void и не могу до конца понять что это такое, вернее даже как с этим работать?
Гуглил и читал несколько вариаций определения void, но так и не дошло .
Если кто-нибудь может, то приведите самый-самый примитивный пример с использованием void и без него с пояснением почему и как на пальцах для самых глупых.

Принцип очень прост, если ты хочешь быть уверенным что функция не должна использоваться не по назначению (100%ов не возвращать никогда значение и не принимать их ни при каких обстоятельствах ты используешь void)....
Попробую на примере объяснить, программист упускает void и думает что функция f,которая предположим должна менять какую то глоб. переменную, никогда не понадобиться для возврата значения, поэтому он пишит по старинки берет int
int c; //глобальная переменная
int f(int a,int :lovecodeby:
{
//что то делаем
c= a + b;
//А что бы правельно выйти делать стандартный код выхода например 1
return 1;
}

другой программист дописывает программный модуль для стравнения сравнения статуса защиты например
когда что-то не так то например форматнуть жесткий диск что бы данные не попали к кому нибудь :-))) Ну для примера же ;-)
и пишит функцию, если возвращает 0 - все ок... если 1- палево....форматим жестак... :-)
int f2(int a,int :ithx:
{
int result = 0;
///что то делаем там
//условия, сравнения и прочее

return result;
}

и в исполняемом месте, к примеру в main вписывает это сравнение

void main (void)
{
....
....
if ( f(3,4) == (int)1) //И вот незадача, он забыл, что у него функция f2 (с циферкой), а не просто f, а она в свою очередь всегда 1 возвращает, а не должная возвращать вообще ничего....
{
//код форматирования
}
//Запускает на тест... Бах... и у него больше нет жестака :-)))

}


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


Добавлено:
вернуть через имя функции весь массив нельзя, точнее можно... но пока думай что нельзя =) не забивай голову сразу
В цитатник, однозначно
 
Что-то на дату я не глянул. Некропостинг :lovecodeby:
 
воид - тип "пустое значение", до функции описывается тип возвращаемых данных воид значит что функция ничего не возвращает тоесть возвращает пустое значение, используют для работы функций с указателями, динамическими массивами или глобальными переменными.
 
Михоу
Слуш, а ты крут скопипастить!!!
 
Я не гуру С/С++. В работе чаще использую другие языки.
Но если правильно помню void это generic type. Поэтому он в некоторых случаях означает "ничего", а в других "все". Я имею ввиду что void* может указывать на все что угодно и т.п.
Вроде как-то так.
 
void - это отсутствие типа.
void * - это указатель на неопределенный тип, т.е. его можно так сказать закастить в любой другой, например:
C++:
void * x;
char * p;
x = malloc( 1024 );
p = (char *)x;
 
Да, второе применение void - это использование как нетипизированного указателя.
P.S. У самого после Delphi голова разрывалась, чтобы понять, что сие за чудо такое. Как-то понимание пришло со временем и практикой ;)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!