![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
![]()
Допустим у меня есть сишная функция, которая нормально компилируется компилятором си.
Код:
D:\projects\Untitled1.cpp:2: error: a function-definition is not allowed here before '{' token D:\projects\Untitled1.cpp:5: error: 'bar' was not declared in this scope |
![]() |
![]() |
![]() |
#2 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
![]()
Ну, точно не знаю, но вот по текущим стандартам С++ ключевое слово auto имеет совершенно другое значение - автоматическое определение типа, т.е.
Код:
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
![]()
не знаток тонкостей с, но в ++ нельзя объявлять вложенные функции
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
![]()
она даже как extern не компилируется
error C2601: 'bar' : local function definitions are illegal |
![]() |
![]() |
![]() |
#5 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
![]()
_-Re@l-_ это в новом стандарте так можно делать. Так как он пока не сильно широко распространен не запутывай человека. the_deer_one зачем функцию сделали auto? Не сильно понял.
|
![]() |
![]() |
![]() |
#6 | |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
![]()
profi
Цитата:
|
|
![]() |
![]() |
![]() |
#7 | |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
![]()
Переменные с auto объявляются только внутри функции или блока. Их нельзя объявить вне блока. Переменные с этим спецификатором автоматически создаются и уничтожатся. Для функций - первый раз такое вижу
![]() Цитата:
Последний раз редактировалось profi; 05.03.2011 в 19:08. |
|
![]() |
![]() |
![]() |
#8 | |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
![]()
profi
Цитата:
функции: auto int iterate_disk (const char *disk_name); auto int iterate_partition (grub_disk_t disk, const grub_partition_t partition); |
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
![]()
profi, auto не меняет смысла в си компилится, в ++ нет
так и не должно ведь |
![]() |
![]() |
![]() |
#10 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
![]()
profi, этот стандарт поддерживают почти все компиляторы, и, если вы используете компилятор сновым стандартом, в нём auto имеет абсолютно другое значение.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Мини бэйсик:объявление функции, вызов функции , возврат. | AL_LORD | Помощь студентам | 2 | 14.10.2010 17:48 |
Программа на СИ++, используя функции работы с файлами и функции <string.h> | Аня Popova | Фриланс | 9 | 13.09.2010 15:52 |
Функции в си. Вывод двумерного массива из функции. | Evgen51 | Общие вопросы C/C++ | 9 | 13.05.2010 03:59 |
Чем отличается описание функции от определения функции в С++? | Go6a | Помощь студентам | 4 | 18.07.2009 18:07 |
Функции. Передача массива в качестве параметра функции. | Wia | Помощь студентам | 2 | 17.03.2009 14:57 |