Форум программистов, компьютерный форум CyberForum.ru

что такое Void - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Палиндром, матрица, список... Задачи С++ http://www.cyberforum.ru/cpp-beginners/thread24739.html
Здравствуйте! Помогите пожалуйста решить задачи :-[ Задача №1 Найти все простые натуральные числа, не превосходящие n, двоичная запись которых представляет собой палиндром, т.е. читается одинаково слева направо и справа налево Задача №2 Задана матрица размером п х т. Найти максимальный по модулю элемент матрицы. Переставить строки и столбцы матрицы таким образом, чтобы максимальный по модулю...
C++ Система распознавания на основе преобразования хорд изображений Помогите может кто сталкивался с такой проблемой. По данной теме «Система распознавания на основе преобразования хорд изображений» разъясните в чем смысл в теме что требуется для этой темы?? http://www.cyberforum.ru/cpp-beginners/thread24729.html
работа с классами C++
требуется описать класс, который позволял бы работать с массивом строк неизвестной длинны, записанным в текстовом файле. Предусмотреть ввод имени файла в командной строке. Прочитать массив из файла, определить его размер и для каждой строки вставить в начало каждой строки слово, состоящее из последних букв всех слов строки. Описание массива в закрытой части класса. Действия с массивом через...
C++ Указатели Pascal в C++
Есть константы в коде Pascal: ... const TAB = ^I; CR = ^M; ... Помогите перевести код(см выше) в код С++. :( %)
C++ рекурсивно расставить 8 ферзей C++ http://www.cyberforum.ru/cpp-beginners/thread24646.html
:wall:помогите пожалуйста,в рекурсии пока ноль.нужно расставить 8 ферзей на шахм доске 8*8 так,чтобы они не били друг-друга.идея такова-ставим первую ферзю в первый столбец и сразу присваиваем из этой точки по горизонтали,по вертикали и по диогоналям еденицы(массив изначально заполнен нолями).далее ставим следующюю ферзю...Я именно это и немогу записать в коде -в рекурсию еще не вьехалю...
C++ Перевод программы с VB.NET на C++ Доброго времени суток! На просторах интернета я нашел исходный текст одной интересной программки. Смысл в том, что программа отвечает на вопросы, которые вводит пользователь. Своего рода AI(искусственный интелект) Исходник написан на Visual Basic.NET. Я дружу с VB.NET, но ближе мне C++ и поэтому я решил перевести прогу на C++. Вот исходный код на VB.NET: Module Module1 Public otvet As... подробнее

Показать сообщение отдельно
Lord_Voodoo
Супер-модератор
8584 / 2184 / 61
Регистрация: 07.03.2007
Сообщений: 10,885
Завершенные тесты: 1
02.03.2009, 10:54
voidтип, спецификатор типа и ключевое слово в языках программирования Си, Си++, Java, C# и D, заимствованное у их общего предшественника Алгола 68.
История
Среди современных языков программирования ключевое слово void впервые появилось в Си++ для поддержки концепции обобщенных указателей. Тем не менее, благодаря скорому заимствованию у Си++, первым нормативным документом, содержащим это ключевое слово стал стандарт языка Си, опубликованный ANSI в 1989г. В рамках языка Си++ void был стандартизован в 1998г.
Впоследствии ключевое слово void и связанные с ним языковые конструкции были унаследованы языками Java и C#, D.
Синтаксис
Синтаксически, void является одним из спецификаторов типа, входящих в более общую группу спецификаторов объявления.
Семантика
Семантика ключевого слова void не подчиняется общей семантике спецификаторов типа и зависит от способа употребления:
  • В качестве имени типа значения, возвращаемого функцией: указывает на то, что функция не возвращает значения, а вызов такой функции является void-выражением. Тело такой функции не должно содержать операторов return с выражениями. Например:
    void f();
  • В составе декларатора функции: указывает на то, что функция имеет прототип и не имеет параметров. Например:
    int f(void);
  • В качестве имени целевого типа операции приведения: такое void-приведение означает отказ от значения приводимого выражения. Например:
    #define promote_ptr() ((void) (ptr++))
  • В составе имени типа void-указателя: такой указатель способен представлять значения любых указателей на объектные и неполные типы, т.е. адреса любых объектов. Таким образом, void-указатель является обобщенным объектным указателем. void-указатели не способны представлять значения указателей на функции. За исключением случая приведения константного null-указателя к указателю на функцию в Си, явных и неявных преобразований между void-указателями и указателями на функции нет.
Тип void определен как неполный тип, который не может быть дополнен. Как следствие, этот тип не должен быть использован там, где допускаются только полные типы, например, в качестве типа параметра в определении функции.
Язык Си до введения void
До публикации первого стандарта Си в 1989г., которая ввела в язык ключевое слово void общепринятой практикой было объявлять функции, не возвращающие значений без использования спецификаторов типов. Хотя семантически такой объявление было эквивалентно объявлению функции, возвращающей значение типа int, намеренно опущенные спецификаторы типа подчеркивали, что функция не возвращает никакого определенного значения. Например:
f(long l){ /* ... */}
Схожим образом, определения функций, не имеющие параметров записывались с пустыми круглыми скобками:
int main(){ /* ... */}
В качестве обобщенного указателя использовался указатель на char. Более того, современные стандарты требуют, чтобы представление и требования по выравниванию для void-указателей были теми же, что для указателей на char, что означает взаимозаменяемость этих типов.
Первый стандартный диалект Си (C89), хотя уже позволял записи с ключевым словом void, все же допускал такое использование неявного int в целях поддержки совместимости с существующим кодом. Современный диалект Си (C99) не допускает отстутсвия спецификаторов типов в именах типов и объявлениях.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru