Вышел стандарт C11 (C1X)

События в мире...в этом гребaном гнилом мире...новости об армагеддоне постить сюда.
Ответить
Сообщение
Автор
Deus_Ex_Machina
Капитан
Капитан
Сообщения: 492
Зарегистрирован: 23.05.2010
Благодарил (а): 14 раз
Поблагодарили: 43 раза
Контактная информация:

#1 Сообщение 24.12.2011, 18:54

19 декабря 2011 года международная организация по стандартизации ISO обьявила о выходе стандарта C — ISO/IEC 9899:2011 (ранее неофициально известного как C1X).

Основные изменения по сравнению с C99:
  • Выравнивание данных
    Спецификатор функции _Noreturn
    Выражения, не зависящие от типа (Type-generic expressions) с использованием ключевого слова _Generic
    Поддержка многопоточности
    Улучшенная поддержка Unicode
    Функция gets, была признана устаревшей и заменена на gets_s
    Статические утверждения(Assertions)
    Функция quick_exit
    Макросы для создания комплексных чисел
Частичная поддержка функций нового стандарта имеется в компиляторах GCC и Clang.
Источник: habrahabr.ru

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#2 Сообщение 24.12.2011, 20:04

Поддержка многопоточности
Хорошо, что есть в стандарте.. Ибо венда.. ну ладно, в общем.
Функция gets, была признана устаревшей и заменена на gets_s
запятая не нужна заменена? что это значит? :O То, что компилятор будет предупреждать, это понятно..
Статические утверждения
Я, честно сказать, не знаю, что это. Про обычные ассерты слышал, но вот это что такое.. И не надо называть это утверждениями. Прямо глобус-стайл.

Неплохо было бы написать чуть подробней о каждом из пунктов. Твоя личная карма увеличится :)
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Deus_Ex_Machina
Капитан
Капитан
Сообщения: 492
Зарегистрирован: 23.05.2010
Благодарил (а): 14 раз
Поблагодарили: 43 раза
Контактная информация:

#3 Сообщение 24.12.2011, 22:17

Леший, не требуй от меня слишком многого. Это всего лишь копипаста с хабры, может, попробую разобраться.
По долгу учебы я вообще якшаюсь с паскалем.

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#4 Сообщение 26.12.2011, 14:41

В каком gcc появится полная поддержка?
И передачи параметра в функцию по ссылке не сделали?(int func(char &c);)

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#5 Сообщение 26.12.2011, 15:32

И передачи параметра в функцию по ссылке не сделали?
Оно уже сто лет есть. Называется передачей указателя.

Добавлено спустя 1 минуту 52 секунды:
В каком gcc появится полная поддержка?
Уже есть поддержка некоторых фич. http://gcc.gnu.org/gcc-4.6/changes.html#c
К следующей версии может остальное сделают.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Deus_Ex_Machina
Капитан
Капитан
Сообщения: 492
Зарегистрирован: 23.05.2010
Благодарил (а): 14 раз
Поблагодарили: 43 раза
Контактная информация:

#6 Сообщение 26.12.2011, 18:44

GanGSISoft
Ты знаешь, чем ссылка отличается от указателя?

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#7 Сообщение 26.12.2011, 19:40

Deus_Ex_Machina
Спалить контору? %)
Последний раз редактировалось $t@t!c_V()1D 26.12.2011, 19:40, всего редактировалось 3 раза.
Причина: В Си нет ссылок.

Deus_Ex_Machina
Капитан
Капитан
Сообщения: 492
Зарегистрирован: 23.05.2010
Благодарил (а): 14 раз
Поблагодарили: 43 раза
Контактная информация:

#8 Сообщение 26.12.2011, 20:57

Я про то, что ссылка в плюсах - обрезанный указатель.
Последний раз редактировалось NiGHt-LEshiY 26.12.2011, 20:59, всего редактировалось 1 раз.
Причина: Ну, ссылка вообще в сторону от указателя уходит. Довольно неинтересная вещь, на самом деле. Не представляю, зачем может понадобиться использовать ссылку вместо указателя. Тем более совместимость с C FTW.

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#9 Сообщение 27.12.2011, 13:48

Написали что улучшена совместимость с C++, вот я и подумал может как в C++ сделали, удобнее там по моему немного,
Добавлено спустя 2 минуты 38 секунд:
И в C не определена стандартом кодировка в char?

Добавлено спустя 8 минут 27 секунд:
И ещё увидел gets_s и вспомнил про strcpy_s fopen_s и др. Это MSосвские придумки не входящие в стандарт?

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#10 Сообщение 27.12.2011, 15:27

удобнее там по моему немного
Что, например?
И в C не определена стандартом кодировка в char?
О, аллах. Такое ощущение, что ты основ не знаешь. В char не может быть никакой определенной кодировки, ибо это просто байт.

Добавлено спустя 29 секунд:
И ещё увидел gets_s и вспомнил про strcpy_s fopen_s и др. Это MSосвские придумки не входящие в стандарт?
Да, именно так. И работать эти функции могут не совсем так, как кажется.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#11 Сообщение 27.12.2011, 15:51

NiGHt-LEshiY писал(а):
удобнее там по моему немного
Что, например?
Ну например вот(хотя это наверное дело в привычке)
в с

Код: Выделить всё

void func(int *i)
{
  *i++
}
...
func(&count)
в с++

Код: Выделить всё

void func(int &i)
{
  i++
}
...
func(count)
NiGHt-LEshiY писал(а):О, аллах. Такое ощущение, что ты основ не знаешь.
К сожалению это имеет место. Тогда нету ли типа, однобайтового в котором по стандарту текст в кодировке UTF-8?, ведь вроде как типы char16_t and char32_t в новом стандарте и предназначены именно для UTF-16/UTF-32. И не появилось тога функций в для перекодировки utf-8/16/32 между собой, а то когда нужна была, я так и не нашёл, пришлось что-то корявое своё делать.

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#12 Сообщение 27.12.2011, 15:57

Тогда нету ли типа, однобайтового в котором по стандарту текст в кодировке UTF-8?
Пойми ты уже, стандарт не может указывать, в какой кодировке там что хранится. Это всего лишь байты.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Deus_Ex_Machina
Капитан
Капитан
Сообщения: 492
Зарегистрирован: 23.05.2010
Благодарил (а): 14 раз
Поблагодарили: 43 раза
Контактная информация:

#13 Сообщение 27.12.2011, 17:57

GanGSISoft
ASCII, но вроде зависит от кодировки терминала.

Ответить