Вышла книга об оформлении текстов программMon Dec 24 21:45:47 2012 UTC В издательстве МАКС Пресс вышла очередная книга А.В.Столярова, посвящённая принципам оформления программного кода. В ближайшее время (скорее всего, сразу после новогодних каникул) на сайте появится электронная версия этой книги. Stay tuned! |
пояснениеВы находитесь на официальном сайте Андрея Викторовича Столярова, автора учебных пособий по программированию и информационным технологиям. Если вы искали сайт замечательного писателя-фантаста Андрея Михайловича Столярова, то вам, к сожалению, не сюда. Андрей Михайлович Столяров в библиотеке Мошкова |
☞ From admin Mon Apr 8 09:28:39 2013 UTC
Соглашения как соглашения
Для меня было сюрпризом. что C++ вообще используется в коде gcc. В остальном соглашения как соглашения. Про RTTI и исключения я полностью согласен. как и про printf вместо iostream. Про разрешение на использование стандартной библиотеки C++ у меня сложилось ощущение, что авторам этих соглашений банально не хватило упрямства (или убеждённости) её запретить.
А в целом — это соглашения отдельно взятого проекта, обусловленные целями, историей, текущим положением и так далее, вряд ли они могут представлять серьёзный интерес за пределами проекта, пусть даже этот проект — аж "сам" gcc.
ответить
☞ From Anonymous (unverified) Sun Apr 7 02:05:00 2013 UTC
Здравствуйте. Х
Здравствуйте.
Хотел бы услышать ваше мнение по поводу этих соглашений
http://gcc.gnu.org/codingconventions.html
ответить
☞ From Anonymous (unverified) Sun Jan 20 21:08:00 2013 UTC
Строковые литералы и вложенные подпрограммы в C
Здравствуйте.
На 66 странице в ващей книге утверждается, что в чистом C нельзя сделать конкатенацию строковых литералов, аналогичную таковой в C++. Это неверно. В черновике стандарта C99 по этому поводу написано следующее:
6.4.5 String literals
...
In translation phase 6, the multibyte character sequences specified by any sequence of adjacent character and wide tring literal tokens are concatenated into a single multibyte character sequence. If any of the tokens are wide string literal tokens, the resulting multibyte character sequence is treated as a wide string literal; otherwise, it is treated as a character string literal.
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf
Еще GCC поддерживает вложенные подпрограммы для C как нестандартное языковое расширение http://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html
ответить
From admin Tue Jan 22 13:42:00 2013 UTC
И что?
Ни C99, ни тем более GNU extensions не имеют никакого отношения к языку Си. C99 — это не Си, это бред, придуманный командой международных террористов, по недоразумению называемых стандартизационным комитетом. Ну а авторов GNU extensions следовало бы, полагаю, немножко полечить.
Кроме того, процитированный вами фрагмент относится к multibyte literals, то есть к "строкам", состоящим из элементов типа wchar_t. Моё отношение к non-ascii chars в тексте программы довольно подробно изложено в упоминаемой вами книжке.
ответить
From Anonymous (unverified) Tue Jan 22 19:09:00 2013 UTC
Это относится
Это относится не только к multibyte literals и это есть не только в C99. В ANSI C это тоже есть. Можете найти текст черновика соответствующего стандарта и почитать.
Или проверить на этом примере:
GCC с параметрами
-ansi -pedantic
компилирует этот пример без всяких возраженийответить
From admin Wed Jan 23 15:58:00 2013 UTC
похоже на правду
По правде, gcc меня бы не убедил, но clang делает то же самое. Точно помню, что в начале моей карьеры не все компиляторы это умели, но тогда C89 только-только появился, соответствовали ему далеко не все, да и, на самом деле, не факт, что проприетарному стандарту (а ISO других не делает в силу её политики) так уж прямо следует соответствовать.
Ну, значит так тому и быть, в следующем издании исправлю, если оно когда-нибудь будет. Спасибо.
ответить