LINUX.ORG.RU

Новый стандарт языка C: C18

 , , ,


6

7

Международная Организация по Стандартизации (ISO) опубликовала новый международный стандарт языка программирования C: ISO/IEC 9899:2018, его также называют C17 и C18.

Новый стандарт не вносит никаких новых возможностей, а лишь исправляет дефекты, сообщенные для C11. Значение макроса __STDC_VERSION__ увеличено до 201710L.

Поддержка C18 у GCC появилась, начиная с 8 версии, а у LLVM Clang — с 6.0. Чтобы указать во время компиляции использование стандарта C18 у GCC и LLVM Clang используются флаги -std=c17 и -std=gnu17. В GCC можно также указать новый стандарт флагами -std=c18 и -std=gnu18.

Последний черновик стандарта

Статья на en.wikipedia.org

>>> Подробности

★★

Проверено: jollheef ()
Ответ на: комментарий от tailgunner

Прочитать K&R полезно программисту на любом языке. Там очень много фундаментальных вещей даётся по алгоритмам и СД. Допускаю что в плане изучения Си есть что-то лучше, но вообще, K&R это must read.

perl5_guy ()
Ответ на: комментарий от perl5_guy

Там очень много фундаментальных вещей даётся по алгоритмам и СД

Полхоже, я читал какой-то другой K&R. В любом случае, как учебник по языку Си K&R устарел уже сейчас.

tailgunner ★★★★★ ()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от Chelobaka

Когда уже ИИ заменит все эти языки программирования и я просто смогу говорить «Компьютер, я хочу новый легковесный браузер на вэбките»

легковесный браузер на вэбките

И тут компьютер начинает ржать как ошпаренный, забрызгивая цифровыми слюнями всё вокруг. А потом выпадает в BSOD.

IPR ★★★★ ()
Ответ на: комментарий от tailgunner

In contrast to the ubiquitous presence of C programs and systems, good knowledge of and about C is much more scarce. Even experienced C programmers often appear to be stuck in some degree of self-inflicted ignorance about the modern evolution of the C language. A likely reason for this is that C is seen as an «easy to learn» language, allowing a programmer with little experience to quickly write or copy snippets of code that at least appear to do what it’s supposed to. In a way, C fails to motivate its users to climb to higher levels of knowledge.

Интересное наблюдение.

theNamelessOne ★★★★★ ()
Последнее исправление: theNamelessOne (всего исправлений: 2)
Ответ на: комментарий от Miguel

C++ — говнище полнейшее, практическое руководство «как не надо делать языки программирования».

C++ является по сути надмножеством C, т.е. «C с классами плюшками». Даже если я пишу на нём в чисто сишном стиле, всегда приятно иметь пакетик с плюшкам в запасе, на всякий случай если вдруг кушать захочется. А уж если вспомнить, какое чудовищное уродство на выходе дают попытки эмулировать ООП на голом си (полагаю, от таких вот маньяков вроде тебя, которые лучше нечитабельный велосипед напишут, чем возьмут готовое), то уж лучше я на «говнище» попишу.

dimgel ()
Ответ на: комментарий от dimgel

Даже если я пишу

В нормальной промышленной разработке — ты не один.

А если ты один, то тем более — почему не писать на чём-нибудь приличном?

какое чудовищное уродство на выходе дают попытки эмулировать ООП на голом си

Уродство — от пихания ООП всюду, где оно не нужно (то есть, почти везде).

Miguel ★★★★★ ()
Ответ на: комментарий от Miguel

Так бы сразу и сказал: ООП не нужен, следовательно C++ не нужен.

Продолжать разговор с любителями подгонять реальность под свои фантазии не вижу смысла.

dimgel ()
Ответ на: комментарий от dimgel

Так бы сразу и сказал: ООП не нужен, следовательно C++ не нужен.

Нет, ложное следствие. C++ — далеко не единственный ООП-язык, и ООП в нём сделано откровенно хреново (впрочем, как и почти всё остальное). И потому убогость концепции ООП почти никак не связана с убогостью C++.

Miguel ★★★★★ ()
Ответ на: комментарий от dimgel

Мои слова. И не отказываюсь.

Ты пожаловался, что, если делать ООП на C, получается, мягко говоря, не очень. Я на это и отвечал.

И я не подменял тему, а лишь дополнил. Было: «С++ — говно». Стало: «C++ — говно и ООП — говно». С уточнением «это, вообще-то, слабо связанные вещи».

Miguel ★★★★★ ()
Ответ на: комментарий от Miguel

Понятно. Напоминаю однако, сабж обсуждения — си, а не какие-то правильные ООП-языки. И вокруг этого прискорбного факта я как раз и аргументировал выше: на плюсах можно писать в сишном стиле, а по необходимости заюзать плюсовые фичи чтобы не велосипедить. Так что ругать плюсы в сишной ветке — это довольно странно, считай — расписываться в отсутствии дисциплины (чтобы не юзать то что не требуется) или в любви к кривым велосипедам (вместо того чтобы заюзать то что вдруг потребовалось).

dimgel ()
Ответ на: комментарий от dimgel

ругать плюсы в сишной ветке — это довольно странно

Я всего лишь отвечал на фанбойский коммент, восхваляющий плюсы в сишной ветке.

расписываться в отсутствии дисциплины

Проблема не в своей дисциплине. Проблема, как всегда, в соседской.

Miguel ★★★★★ ()
Ответ на: комментарий от Miguel

Я всего лишь отвечал на фанбойский коммент, восхваляющий плюсы в сишной ветке.

Гы, т.е. у меня впервые в жизни удался троллинг? Ура!!! :))

Проблема не в своей дисциплине. Проблема, как всегда, в соседской.

Гы, боюсь на голых сях эта проблема ровно та же. :) «Все языки полны по Тьюрингу, следовательно на любом языке можно написать ужасный код.»

dimgel ()
Ответ на: комментарий от Chelobaka

Если это будет настоящий ИИ (не тот, который похоронили в 90-х, и не современные подгоночные модели, называемые ИИ исключительно в маркетинговых целях), то ему проще будет заменить пользователя на более покладистого, чем выполнять твои никуда ему не упёршиеся хотелки.

anonymous ()
Ответ на: комментарий от anonymous

ему проще будет заменить пользователя на более покладистого

Вертится на языке язвительная шутка про уровень ИИ у придумывающих такие переусложнённые решения. Замену какую-то искать зачем-то... Когда уже есть готовый рецепт, как раз для ИИ: «kill all humans» (c) Bender.

dimgel ()
Последнее исправление: dimgel (всего исправлений: 1)
Ответ на: комментарий от dimgel

Гы, т.е. у меня впервые в жизни удался троллинг? Ура!!! :))

Поздравляю, теперь ты можешь оплодотворить самку тролля.

Если найдёшь.

боюсь на голых сях эта проблема ровно та же

Нет. Проблема, разумеется, присутствует во всех языках, но есть языки, которые её провоцируют, а есть — которые смягчают. Опытный программист на Фортране может, разумеется, написать программу на Фортране на любом языке, но это не значит, что все языки — это Фортран.

Miguel ★★★★★ ()
Последнее исправление: Miguel (всего исправлений: 1)
Ответ на: комментарий от WatchCat

Они спрашивают когда он всё-таки начнёт развиваться.

Передай им, что он еще не прекратил развиваться.

Но, судя по «гигантским» изменениям, никогда.

Си асимптотически приближается к совершенству. Думаю, оно будет достигнуто с _Either.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

Си асимптотически приближается к совершенству. Думаю, оно будет достигнуто с _Either.

Не будет. Потом что для этого понадобятся (о ужас!) дженерики и (кошмар!) pattern-matching! А это сложна.

</sarcasm>

~~@~~

anonymous ()
Ответ на: комментарий от le_legioner

K&R годятся только, как исторический фрагмент

нет, ибо k&r является, по сути, сборником заданий с небольшими предварительными пояснениями, поэтому такой малый объём книги
по-прежнему полезно для понимания повелосипедить функции из стандартной библиотеки, rpn-калькулятор и т.д.

liberty1 ()
Ответ на: комментарий от tailgunner

он еще не прекратил развиваться

А начал-то когда? С 80-х почти одна косметика добавляется. Значительных изменений по пальцам пересчитать, и те наполовину спорные, а на вторую - из C++ тянутые.

anonymous ()
Ответ на: комментарий от Chelobaka

видеокодек на ИИ

компьютер, хочу компактную атомную бомбу,

Как называется эта болезнь, когда не видят пропасти между мощным калькулятором и общим ИИ?

anonymous ()
Ответ на: комментарий от anonymous

Потом что для этого понадобятся (о ужас!) дженерики и (кошмар!) pattern-matching!

Там суть предложения именно в том, что не понадобятся. Хотя дженерики (убогие и бесполезные) уже есть.

tailgunner ★★★★★ ()
Ответ на: комментарий от anonymous

А что не даёт мощному ИИ пользоваться общим калькулятором, политкорректность? CoC? пущай работает. Для чего разрабатывалось всё это «нано»? Если теперь технология не должна начать служить человеку, то когда?

Chelobaka ★★★★★ ()
Ответ на: комментарий от tailgunner

Передай им, что он еще не прекратил развиваться.

Что-то не видно этого самого развития.

Си асимптотически приближается к совершенству.

Ну так я и говорю, что он совершенный макроассемблер.

WatchCat ★★★★ ()
Последнее исправление: WatchCat (всего исправлений: 2)
Ответ на: комментарий от gag

Хм, то они JavaScript внедряют, то вот такие штуки выдают...

Поясните пожалуйста, как новые стандарты вредят портабельности? И как например на ней отражается то, что Qt 5 написан на C++11?

ArkaDOSik ()
Ответ на: комментарий от ArkaDOSik

Хм, то они JavaScript внедряют, то вот такие штуки выдают...

Это просто один из многих биндингов поверх С. Просто активно юзается в gnome как язык расширений.

как новые стандарты вредят портабельности?

Полной поддержки c99 нет ни в одном компиляторе, не говоря уже про c11 и выше.

linux-org-ru ()
Последнее исправление: linux-org-ru (всего исправлений: 1)