|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.02.2012, 01:50 | #1 |
Регистрация: 13.12.2011
Сообщений: 9
|
Функция
Не могу понять в чем ошибка в функции.
Компилятор пишет error C2144: syntax error : 'void' should be preceded by ';' Код:
Последний раз редактировалось Stilet; 02.02.2012 в 11:09. |
02.02.2012, 02:28 | #2 |
Пользователь
Регистрация: 02.01.2012
Сообщений: 46
|
В 4 строке забыли точку с запятой.
|
02.02.2012, 02:36 | #3 |
Регистрация: 13.12.2011
Сообщений: 9
|
спасибо)))
|
02.02.2012, 10:34 | #4 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
main() должна возвращать int
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
02.02.2012, 15:16 | #5 |
Регистрация: 13.12.2011
Сообщений: 9
|
Там ошибка в точке с запятой была. Уже все работает))
Код: Код:
Последний раз редактировалось ACE Valery; 04.02.2012 в 22:12. |
02.02.2012, 15:31 | #6 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
А ошибка в возвращаемом типе main() осталась.
Если ваш компилятор это компилирует - это не значит, что ошибки нет http://codepad.org/W9atg1IJ
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
02.02.2012, 16:50 | #7 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
|
|
02.02.2012, 17:50 | #8 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
А решение, не соответствующее стандарту - является
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
02.02.2012, 17:58 | #9 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Решение, не соответствующее стандарту, но соответствующее конкретному компилятору является "не_портируемым".
Не нужно путать "не_портируемое решение", и "решение, содержащие ошибку". В частности, корпорация зла имеет свои особые основания для того, что бы отходить от стандарта в определённых моментах. Код генерируемый самой студией, или код заточенный под работу с компилятором студии "ошибочным" не является, при условии, что портируемость не является одним из требований к создаваемому продукту. |
03.02.2012, 17:38 | #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 |