Re: Написать прогу на C++
А можно еще короче - Hi и все тут - текст минимизирован до предела.
void main{}
void main{}офигеть
это ж надо умудрится сделать ошибку в пустой программе.
наверно подразумевалось что-то типа этого:
int main(void)
{
return 0;
}
Типа надо читать пункт 3.6.1 стандрта ISO98.
У меня тут вопрос возник. В стандарте ISO98 говорится, что пустой список параметров эквивалентен (void). Почему обычные функции и методы в стандарте записываются чаще всего, как f(void но записи main(void) не встречается ни разу, только main?
Типа надо читать пункт 3.6.1 стандрта ISO98.
Нафига? Код компилируется, значит он корректен. Другой вопрос, насколько он переносим.
Код компилируется, значит он корректен.не везде.
$c++ 1.cpp
1.cpp error: '::main' must return 'int'
не везде.
Другой вопрос, насколько он переносим.
Заметь, я не призываю писать не по стандарту, минусы такого подхода очевидны. Я лишь утверждаю, что первичным признаком корректности кода в некотором окружении является не то, что написано в стандарте, а компилится/запускается ли этот код.
Код компилируется, значит он корректен.
ужос нах
такое определение (это же ведь типа определение "корректности" такое?) нелогично, интуитивно непонятно, а значит непрактично
Не вдаваясь в дебри и тонкости (типа разных уровней совместимости и прочего можем остановится на такой терминологии: "код называется корректной C++ софтиной, если он соответствует последнему стандарту ISO C++".
Корректная C++ софтина (прога или библиотека) имеет следующие свойства: (1) компилится любым компилятором, реализующим язык программирования C++, т.е. реализующим функциональность описанную в стандарте C++, (2) одинаково работает (так как описано в стандарте независимо от того какой C++ компилятор скомпилил, и где используется.
А если некий код просто без ошибок скомпилировался на каком-то конкретном C++ компиляторе (== компиляторе реализующем стандартную C++ функциональность то он (1) может вообще не заработать или заработать не так как требуется/ожидается, (2) может не скомпилиться не только другим C++ компилятором, но и другой версией того же компилятора, (3) успешно скомпилированный разными C++ компиляторами (или версиями одного компилятора) может заработать по разному или в одном случае заработать, а в другом нет.
Называть все это корректной софтиной, хм, мягко говоря странно.
Называть соответствие стандарту портируемостью - заблуждение (в том смысле, что такое наименование не логично, не практично и не общепринято это именно корректность, т.е. соответствие спецификации, определяющей язык программирования.
Портируемая программа (которая компилируется многими компиляторами и правильно работает на многих платформах) может не быть корректной, а корректная может не быть портируемой - язык C++ наиболее красочно иллюстрирует это утверждение, учитывая что в нынешний момент нет ни одного компилятора совместимого со стандартом C++ (т.е. нет в природе ни одного C++ компилятора в том смысле в котором эта фраза здесь используется, разве что какой-то никому не известный например AFAIK ключевое слово export никем не реализовано до сих пор.
ИМХО наилучшей практикой является написание одновременно корректного и портируемого софта. Лично для меня это чуть ли не единственный приемлемый вариант.
Я лишь утверждаю, что первичным признаком корректности кода в некотором окружении является не то, что написано в стандарте, а компилится/запускается ли этот код.что за первичный/вторичный/третичный/четвертичный?
Определением (а значит и самым главным признаком) корректности логично считать соответствие стандарту.
Определением работоспособности в данном окружении является, возможность скомпилить код в данном окружении, чтобы он работал так как задумано.
Определением портируемости будем считать работоспособность во многих окружениях.
В задании что-то говорилось о последнем стандарте? Нет? Программа работает? (я, конечно, не проверял, но насколько я помню, должна работать) В чем проблема?
В задании что-то говорилось о последнем стандарте?В задании говорилось про язык программирования C++, определением которого является стандарт оного.
Если вы несогласны считать определением языка программирования его стандарт, то скажите, что именно логично принять за определение ЯП по вашему мнению.
Программа работает?у кого-то работает, а у кого-то нет
если программа работает в каком-то одном месте - одно это вовсе не делает ее корректной (весь глюкавый софт - сборище секьюрных уязвимостей - тоже "работает", пока правильно используешь, и что теперь?)
имхо, скорее так:
первичным признаком корректности кода - является соответствие стандарту,
вторичным признаком корректности кода - является компилируемость каким-то компилятором.
причем, если переход - соответствие стандарту, но не компилируется -> сделать, чтобы компилировалось, обычно более-менее детерминированный.
то переход - компилируется, но не соответствует стандарту -> сделать, чтобы соответствоваk, уже в большинстве случаев менее детерминированный.
ps
хотя бы в данном случае -у нас есть два способа сделать программу, соответствующей стандарту: поставить void, поставить int.
а вот f(void) - только с нулевым количеством параметров.
если ты не собираешься передавать эти функции в качестве параметров в другие функции, то не стоит заморачиватсья
Что за прога?
Оставить комментарий
Navaon
Нужно написать программу на C++.Обращаться по тел. 89265686389(присылайте SMS)