![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 13.12.2011
Сообщений: 9
|
![]()
Не могу понять в чем ошибка в функции.
Компилятор пишет error C2144: syntax error : 'void' should be preceded by ';' Код:
Последний раз редактировалось Stilet; 02.02.2012 в 11:09. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 02.01.2012
Сообщений: 46
|
![]()
В 4 строке забыли точку с запятой.
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 13.12.2011
Сообщений: 9
|
![]()
спасибо)))
|
![]() |
![]() |
![]() |
#4 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
![]()
main() должна возвращать int
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 13.12.2011
Сообщений: 9
|
![]()
Там ошибка в точке с запятой была. Уже все работает))
Код: Код:
Последний раз редактировалось ACE Valery; 04.02.2012 в 22:12. |
![]() |
![]() |
![]() |
#6 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
![]()
А ошибка в возвращаемом типе main() осталась.
Если ваш компилятор это компилирует - это не значит, что ошибки нет http://codepad.org/W9atg1IJ
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#8 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
![]()
А решение, не соответствующее стандарту - является
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
Решение, не соответствующее стандарту, но соответствующее конкретному компилятору является "не_портируемым".
Не нужно путать "не_портируемое решение", и "решение, содержащие ошибку". В частности, корпорация зла имеет свои особые основания для того, что бы отходить от стандарта в определённых моментах. Код генерируемый самой студией, или код заточенный под работу с компилятором студии "ошибочным" не является, при условии, что портируемость не является одним из требований к создаваемому продукту. |
![]() |
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
![]() Цитата:
Но есть положения сттандарта, где стандарт явно указывает, что реализацию той или иной сущности он осталяет на усмотрение разработчиков компиляторов. В этом случае эта сущность называется unspecified. То тесть стандарт не уточняет, как может быть реализована эта сущность. В этому случае разработчики компиляторов обязаны документировать поведение данной конкретной сущности в описании компилятора. Кроме того разработчики компиляторов могут включать собственные расширения к языку, которые должны быть также явно документированы. Вот, собственные расширения к языку, например, дополнительные функции, или дополнительные синтаксические конструкции - это и является тем, что вы называете портируемостью. При этом у компилятора должна быть опция, которая позволяет отключить эти расширения, или в случае использования функций в документации к компилятору должно быть указано, что эта функция не является стандартной. Что касается void main, то это не непортируемость, а неопределенное поведение, так как среда, в которой запускается эта программа, не будет знать, как обрабатывать завершение этой программы. И более того, это не соответсвует тому, что компилятор в любом случае вставляет код, который возвращает из main целочисленное значение, даже если вы это сами не будете делать. То есть имеет место противоречие между объявлением фукнции и ее определением. Именно поэтому такое поведение является неопредленным, то есть undefined , а программа использующая такое неопредленное поведение является согласно терминологии стандарта ill-formed. В стандарте много мест, где указано, что компиляторы моогут компилировать ваш код, тем не менее он является некорректным, так как помимо синтаксиса есть еще и семантика.
Со мной можно встретиться на www.clipper.borda.ru
Последний раз редактировалось Сыроежка; 03.02.2012 в 17:42. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
функция | sanya94 | Общие вопросы C/C++ | 3 | 24.11.2010 16:32 |
функция if | IRMA230 | Microsoft Office Excel | 12 | 02.06.2010 22:43 |
функция | loloverg | Помощь студентам | 0 | 18.05.2010 20:12 |
Функция | Lemo | Помощь студентам | 1 | 02.12.2008 00:24 |
одна функция потока, а другая функция - член класса запускающего этот поток | Дмитрий_Ч | Общие вопросы C/C++ | 2 | 27.09.2007 08:50 |