Search
Write a publication
Pull to refresh
3
0
Антон @MTX-Legion

Пользователь

Send message
боже что за ахинею ты несешь.
Вот я возьму и вызову strlen на аргумент инт. И где тут ограничения?

И ко второму аргументу функция не обратится, потому что у неё его нет.

ну тут вообще просто огонь. В Си все функции пытаются делать что ты с несуществующими аргументами.
я еще раз спрашиваю причем тут язык? что за деградация пошла. Почему язык должен проверять твои ошибки или законность твоих требований? Язык тебе дан для описания процесса а не для его проверки. Есть специальные инструменты для проверок всего что тебе надо. Язык не описывает стандарты алгоритмов. Язык программирования описывает действия а не диктует их.

Это как сказать хочу что бы в Си было встроено подключению к базе данных.

Поэтому Си останется языком программировании а не средой разработки как все ваши новомодные «Языки». Нужен парсер ищи на гите. Нужен драйвер для БД, Ищи на гите. а еще лучше сделай сам. тыж программист.
Зря ты разогнался, пишу) Но тут говорим а языке программирования а не о жонглирование отдельными инструкциями.
Всегда удивлялся достижениям в решении проблем которую создали из за не компетентности разработчиков.
Сортировки с типом чуть умнее, чем qsort. Списки-массивы те же. Ассоциативные контейнеры. Парсеры на комбинаторах.


так это не к языку предъява а к тебе как программисту.

Нулевая поддерживаемость — компилятор не ловит ошибки (ведь у него же нет информации о типах).


а ты там зачем нужен?

Можете привести пример парсера на комбинаторах на C? Не кодогенеренный lex/yacc/etc, а вот ну хотя бы как boost.spirit, я уж не говорю о вещах типа megaparsec/trifecta/etc?


я в парсерах не силен но могу с уверенностью сказать что опять таки если ты не можешь описать алгоритм действий на простом Си то лучше конечно пойти пасти коров.
int Get() не утраивает? че за бред с get: IO int  ? как сигнатура функции может отвечать за ее процесс? Слабая система типов? как типы или сигнатура функции отвечает за ее исполнение? Какая слабая система типов?
А по поводу писать свой язык ради дженериков. Еле палы вы молодые такие ленивые и совсем думать не хотите.

Если тебе надо мета программирование то задайся вопросом как компилятор решает эту проблему. Если ты хочешь дженерик контейнеры посмотри как glib это организовал. Штука просто отличная и использовать раз в 100500 удобней не говоря уже про понятность кода.

Так что именно из этого тебе надобно? Все есть. все удобно и эффективно в отличии от массива библиотек вроде бустов и всякой дребедени.

Вопрос остаётся только в скорости разработке на Си. Да это дольше если ты нубас и не вникаешь в суть дела. Да это тяжелее если ты не вникал в саму суть проблемы. Но если ты подкован в теме то реализация функционала на Си очень проста и прямолинейна без лишних абстракций ради абстракций. В этом случае разработка течет очень быстро и без проблем.

Когда у людей проблемы с Си: когда новые программисты привыкли что есть куча библиотек с готовыми решениями и простыми интерфейсами. Но нам не платят за готовые решения. Да есть джава и си шарпы, да они удобны для написания бизнес логики но это маркетинг. Все тоже самое можно сделать на Си ну или на С++ без каких либо проблем (хотя с++ высший уровень мазохизма конечно)
чет ты загнул конечно, посмотреть на тип функции (на тип функции карл) и понять что функция не пишет в файл. Может ты имел тип который функция вернет но причем тут писать в файл. Тут уже пахнет каким то вуду а не программированием.

Допустим вот сигнатура функции (может ты это имел под типом)
void Get();

иди определи что она пишет и куда и не говори мне что тут Си виноват
Ну реализуй дженерики что тебе мешает?

Хочу свободу выражать ограничения на то, что могут или не могут делать мои функции

ты тут вообще о чем говоришь?
да это понятно но иногда просто удобно там же ляпнуть как в плюсах. например деструктор в смарт поинтере
Я вообще задаюсь вопросом таким вот — Си самый эффективный язык для именно программирования. И я не говорю про производительность там или его близость к железу (че за бред вообще). Вам нужно ООП? Так пожалуйста пишите ООП на голом Си (или ваш JVM написан на чем то другом ?). В Си говорят нет таких понятий как полиморфизм и всей той новомодной лабуды? А как вы думаете откуда это пришло, правильно в Си был и есть полиморфизм наследование и вся прочая хрень которую вы так любите (Сука лямбды нету, тут реально обидно). Так вот к чему я это все, Си просто язык и дает вам свободу делать что в голову вам пришло. В отличии от ваших модных языков которые подают вам паттерн который по их мнению лучший и потом спорят о его величии и количестве сектантов.

Заметка для слоупоков полиформизмв си:
(foo*) bar


Заметка для слоупока: наследование
struct foo{
    bar __base__;
}


Заметка ну совсем для долеких 3:
 (bar *) foo //теперь мы обращяемся к базе класса 


А там уже и можно деструктор и виртуальный деструктор прикрутить и все че хочешь.
Вставлю свои 5 копеек. Дома держу небольшую инфраструктуру, облачко. Все на Ubuntu 18, не вижу смысла переходить на другие дистрибутивы. Работает все стабильно и привычно. Пробовал гонять цент, но не зашло мне.

По поводу тех поддержки, за 8 лет даже мысли не было куда то писать и решать какие-то проблемы. Все работке как часы, бывают конечно проблемы но тут уже не от дистрибутива корни росли.
Градиенты хранить надо в шейдерах. Занимает несколько сотен байт на весь градиент. При необходимости использовать — пропускать через этот шейдер нужный буфер, то есть при заливании объекта градиентом (спрайта) используем несколько подходов рендеринга. На выходе имеем меньше места на диске и управляемый градиент. Такой же метод используем для текстур, конвертируем картинки в 16 бит на всю палитру (rgba4444) занимает меньше места и при желании можно произвести дешевый апскейл через дитеринг. Да и вообще на iOS с поддержкой CoreMl можно ещё и разрешение скейлить.
Коммент выше, там уже может быть бомба, test dword ptr[eax +«offset»], -80. Декомпилировать надо правильно :)
Не верно, Массив заполняеться до нажатия первой ячейки. Массив находиться на 01005360 если правильно помню. Бомба/Мины имеют значение 8F а пустые клетки имеют 0F. при вкрытии клетки, заполняються соседнии клетки «возможности» расположения там бомбы, а не сами бомбы.

Проверить очень просто, в Cheat Engine выставить понтер на 01005360 и посмотреть что пишет в этот массив. mov dword ptr[eax+"offset"], -80 инструкция которая пишет в массив. ставим брейк поинт и видим что массив заполнен перед началом игры.

Также хочу добавить что при первом клике и попадании на бомбу значение будет заменено на 0F
infocenter.arm.com/help/topic/com.arm.doc.qrc0001m/QRC0001_UAL.pdf ну да 11 инструкций. все ну очень просто )

Но нечто, реально сложное и многофункциональное, написать на асме практически невозможно


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

код будет фактически не_переиспользуемым мусором, крайне сложноподдерживаемым и платформозависимым


Ты точно ничего не употреблял? Платформозависимый? может наоброт это платформа зависит от инструкций а не наоборот?

если речь не о разработке чего-то крайне эффективного под какой-то конкретный «камень»


Ты наркоман. это факт. А теперь факт про конкретный камень, открой исходники линукса, там есть папка с кодом для поддержки разных камней. зачем же это? Объясню, твоя платформа зависит от камня. и эффективность твоей поллезной программы на джавасрипте тоже зависит от того какие инструкции процессор может выполнить а какие нет.

Вот допустим есть процессоры которые не поддерживают набор дополнительных инсрукций SSE4.1. в этом наборе классные инструкции для работы с нецелыми числами которые ты пользуешь в графики например. И вот вместо использования «камня» ты делаешь тоже самое только на уровне ПО, и на тебя все показывают пальцем, ржут.

И твой компилятор может быть вообще не вкурсах что именно ты хочешь делать поэтому оптимизировать должен ты.

Ну кароче, больше не говори что ассемблер это язык программирования. и что он бесполезен.
На каком ассемблере? что? наврядли после такого заявления кто то поверит в правдивость вашего заяления об опыте написания чего либо для 8080.
11 строк кода обрушили сборки тысячи проектов включая сам реакт. а все из за корпоротивной шняги.

Вообщем один дурак создал проект kik, но оказалось что есть компания с таким именем и те дураки грозили ему судом. npm отдали название пакета компании, в знак протеста чувак вообще удалил все репозитории с npm, ну ивообщем поехало.
Ага, забыть то можно, но основы то знать надо. а вот те кто не знал становятся React native разработчиками и пишут модули вроде left-pad
Ну писать на ассемблере это кататся на велосипеде. навых необходимый каждому разработчику. Если разработчик не знает как устроен апарат и что происходит на самом деле то как он может вообще зватся разработчиком?

Information

Rating
Does not participate
Location
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Date of birth
Registered
Activity