Войти
ФлеймФорумПрограммирование

Имеет ли смысл вводить следующие изменения в С? (2 стр)

Страницы: 1 2 3 413 Следующая »
#15
22:06, 5 мая 2019

У тебя есть С++


#16
(Правка: 22:44) 22:11, 5 мая 2019

Bakuard
> 1. - перегрузка функций.
наверно да, но это во первых требует манглинг, а во вторых противоречит принципу про всякое неявное.

> 2. - обработка исключений с помощью try-catch-finally.
нет, практически бесполезно без raii

> 3. - шаблоны (как синтаксический сахар).
если только функции, то наверное больше да чем нет. хотя...

> 4. - пространство имен.
наверное да.

UPD: но::потом::я::вспомнил::про::вотакие::строки и передумал )))


> 5. - наследование структур.
в примитивном смысле оно и так есть. больше наверное не нужно.

> 6. - отдельный тип данных для строк (а не просто массив char), хранящий
> информацию только в Unicode (UTF-8, UTF-16, UTF-32 - по выбору пользователя), а
> при записи/чтении из внешних источников - требующего явного указания кодировки
> в которую/из которой записываем/читаем строку.
куча библиотек, зачем больше?

> 7. - строгая конвенция по именованию переменных, функций, структур и т.д.
нет.

Та кили иначе, Си хорош и без этого всего. 

#17
22:22, 5 мая 2019

exchg
> Си хорош и без этого всего.
Плюсую.

#18
(Правка: 22:28) 22:27, 5 мая 2019

exchg
> Си хорош и без этого всего
Согласен.

#19
0:27, 6 мая 2019

Faceroll
> -fsanitize=address
Это все на мк происходит, без динамической памяти, так что ничего он не ловит. Надо именно при обращении к массиву проверять.

#20
0:50, 6 мая 2019

kipar
Ок инструментирует все операции с указателями, для стека и статической памяти тоже должен детектить, хотя хз че там с поддержкой микроконтроллеров, всякие гуглы и эпплы очевидно все это для x86 в первую очередь делают.

#21
(Правка: 0:54) 0:53, 6 мая 2019

Faceroll
Он сдетектирует если ты попадешь в левую память. А когда вместо одного статического массива попадаешь в другой никаким инструментированием этого не выявить, нужно менять язык.

#22
(Правка: 1:53) 1:45, 6 мая 2019

kipar
Он как минимум может добавить редзоны в стек и статическую память и поймает большинство ошибок +-1 к указателю.
https://www.usenix.org/system/files/conference/atc12/atc12-final39.pdf
Но понятно что это хуже другое чем встроенное в язык.

#23
(Правка: 10:26) 10:26, 6 мая 2019

Faceroll
> Он как минимум может добавить редзоны в стек и статическую память
Хвостики наоборот?
А если это поле структуры такое - массив из 4 элементов, а потом ещё 4 поля того же типа, куда там редзоны пихать?

#24
11:02, 6 мая 2019

1 frag / 2 deaths
Тогда никак, да (хотя в теории может попробовать напихать в паддинги).

#25
12:06, 6 мая 2019

kipar
> А когда вместо одного статического массива попадаешь в другой никаким
> инструментированием этого не выявить, нужно менять язык.
А вот организовать на уровне библиотеки такой механизм, но не меняя языка, уже никак?

1 frag / 2 deaths
> А если это поле структуры такое - массив из 4 элементов, а потом ещё 4 поля
> того же типа, куда там редзоны пихать?
Так, обычно, у тебя все равно поля выровнены. Правда останется особый случай с упакованными структурами, тут нужно посмотреть какие решения есть для данной проблемы.

#26
12:14, 6 мая 2019

Vlad2001_MFS
> 7-ой пункт бессмысленный. На Си написана куча код, которую никто переписывать не будет.
  Весь код на Си сломается уже после первого пункта.

#27
12:14, 6 мая 2019

exchg
> Так, обычно, у тебя все равно поля выровнены.
Дык я грю, одинаковые тип элемента и следующих полей, там выравнивать нечего.

#28
12:20, 6 мая 2019

Bakuard
> Когда начинаешь работать со сторонним софтом - у одного один тип строк, у
> другой библиотеки - тоже свой
Ну предположим ввели всю твою бредятину. Дальше что? У твоего стороннего софта сразу станет чистый понятный тебе код?

#29
12:26, 6 мая 2019

exchg
> А вот организовать на уровне библиотеки такой механизм, но не меняя языка, уже
> никак?
Чужой то код не начнет эту библиотеку использовать. А так да, запретить использовать квадратные скобки и сделать вместо них get и set видимо вариант, правда код совсем по уродски будет смотреться.

Страницы: 1 2 3 413 Следующая »
ФлеймФорумПрограммирование