Господа, а может кто-нибудь запостит куски кода, на любых языках программирования, которые он считает качественными и напишет почему он их такими считает...
Здравствуйте, Сергей И., Вы писали:
СИ>Господа, а может кто-нибудь запостит куски кода, на любых языках программирования, которые он считает качественными и напишет почему он их такими считает...
Качественным я вляется код, которого не существует. Пример на Java:
В этом коде нет ошибок, его легко дописывать, легко переиспользовать, легко проверить. И что самое главное, его написал самый-умный-программер-на-свете
Здравствуйте, Сергей И., Вы писали:
СИ>Господа, а может кто-нибудь запостит куски кода, на любых языках программирования, которые он считает качественными и напишет почему он их такими считает...
#include <iostream>
int main()
{
std::cout << "Hello, world!\n";
}
Точно соответствует поставленной задаче, ничего лишнего, не требует комментариев, отлично сопровождается, переносим.
Здравствуйте, _DAle_, Вы писали:
СИ>>Господа, а может кто-нибудь запостит куски кода, на любых языках программирования, которые он считает качественными и напишет почему он их такими считает...
_DA>
Здравствуйте, Сергей И., Вы писали:
СИ>Господа, а может кто-нибудь запостит куски кода, на любых языках программирования, которые он считает качественными и напишет почему он их такими считает...
Ну мне например очень нравится код библиотеки www.antigrain.com
Считаю его качественным.
Andrei N.Sobchuck wrote:
> Качественным я вляется код, которого не существует. Пример на Java:
> В этом коде нет ошибок, его легко дописывать, легко переиспользовать, > легко проверить. И что самое главное, его написал > самый-умный-программер-на-свете
Комментариев нет. Плохо.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, kan_izh, Вы писали:
_>Andrei N.Sobchuck wrote:
>> Качественным я вляется код, которого не существует. Пример на Java: _>
_>
>> В этом коде нет ошибок, его легко дописывать, легко переиспользовать, >> легко проверить. И что самое главное, его написал >> самый-умный-программер-на-свете _>Комментариев нет. Плохо.
Как это нет? Весь код, который есть в этой программе отлично закоментирован.
_DA>>Точно соответствует поставленной задаче, ничего лишнего, не требует комментариев, отлично сопровождается, переносим.
А разве у функции main нет параметров?
_DA>Точно соответствует поставленной задаче, ничего лишнего, не требует комментариев, отлично сопровождается, переносим.
— Remove iostream. Many programmers #include <iostream> purely out of habit as soon as they see anything resembling a stream nearby. X does make use of streams, that's true; but it doesn't mention anything specifically from iostream. At the most, X needs ostream alone, and even that can be whittled down:
— Replace ostream with iosfwd. Parameter and return types only need to be forward-declared, so instead of the full definition of ostream we really only need its forward declaration. In the old days, you could just replace "#include <ostream>" with "class ostream;" in this situation, because ostream used to be a class. Alas, no more -- ostream is now typedef'd as basic_ostream<char>, and that basic_ostream template gets a bit messy to forward-declare. All is not lost, though; the standard library helpfully provides the header iosfwd, which contains forward declarations for all of the stream templates (including basic_ostream) and their standard typedefs (including ostream). So all we need to do is replace "#include <ostream>" with "#include <iosfwd>".
_DA>>>Точно соответствует поставленной задаче, ничего лишнего, не требует комментариев, отлично сопровождается, переносим. LM>А разве у функции main нет параметров?
Хм, наверное, здесь есть какая-то тонкая шутка, но я не понял в чем она.
3.6.1/2
An implementation shall not predefine the main function. This function shall not be overloaded. It shall have a return type of type int, but otherwise its type is implementation-defined. All implementations shall allow both of the following definitions of main:
int main() { /* ... */ }
and
int main(int argc, char* argv[]) { /* ... */ }
Здравствуйте, _DAle_, Вы писали:
LM>>А разве у функции main нет параметров?
_DA>Хм, наверное, здесь есть какая-то тонкая шутка, но я не понял в чем она.
Функция main обычно cdecl и extern "C". Т.е. ее параметры со стека очищает вызывающая функция, а не она сама. И имя ее не приукрашается типами параметров. Поэтому все параметры перечислять необязательно, достаточно лишь нескольких первых (но не переборщить ).
int main() {...}
int main(int argc) {...}
int main(int argc, char **args) {...}
int main(int argc, char **args, char **envs) {...}
Насчет возвращаемого значения. Оно используется как код возврата, но если main возвращает void, то в качестве кода возврата будет использоваться мусор, что, в общем-то, бывает некритично.
Здравствуйте, dshe, Вы писали:
D>Здравствуйте, _DAle_, Вы писали:
LM>>>А разве у функции main нет параметров?
_DA>>Хм, наверное, здесь есть какая-то тонкая шутка, но я не понял в чем она.
D>Функция main обычно cdecl и extern "C". Т.е. ее параметры со стека очищает вызывающая функция, а не она сама. И имя ее не приукрашается типами параметров. Поэтому все параметры перечислять необязательно, достаточно лишь нескольких первых (но не переборщить ). D>
D>Насчет возвращаемого значения. Оно используется как код возврата, но если main возвращает void, то в качестве кода возврата будет использоваться мусор, что, в общем-то, бывает некритично.
Код был на языке с++, я привел цитату из стандарта с++. Рассказывать мне, какой должна быть функция main, да еще с кучей ошибок, пожалуйста, не надо
распространяется по лицензии GNU GPL v2, что значит, что любое его использование в своей программе приводит к переходу проги под GPL. Но если вы портируете данный код на другой язык, то можете выбрать любую другую лицензию.