Pull to refresh
4
0.2
Anatolii Mamaev@Serpentine

User

Send message
  • выпустить игровые движки Nau Engine от VK, Unigine и другие (2024–2028);

Unigine уже 18 лет как выпущен.

Только что нашел модули с сишными файлами у них в репозитории, голова прямо кружится от такого объёма проделанной Гайджинами работы за все годы :)

Спасибо за статью.

Не самый жесткий пример кода

Что характерно, читаемый и логичный, если знать математику и 3D помимо C/C++.

Разрешите поинтересоваться, а на Си (без плюсов) сейчас хоть часть кода пишут, или используют просто как подмножество в рамках C++? Заглядывал в выложенные исходники DagorEngine, но Сишных файлов не получилось найти, хотя указано, что треть на Си (может либы с заголовками).

Я понимаю, что разговор в ветке по какой-то причине ушел в сторону товаров народного потребления, мороженного, бытовой и с/х техники, но всё же мой первый вопрос был по теме обсуждаемой статьи, а именно: о компьютерной технике в СССР (в т.ч. об импортной, если читать статью внимательно), которая представлена на экспозиции. Также в рамках обсуждения предложения stackjava о подключении этих компьютеров, чтобы посмотреть как они работают.

Почему же она работала "плохо", если она свою функцию исполняла? Мне в контексте ЭВМ показалось, что это взаимоисключающие характеристики.

Лично моё мнение, что эта техника не так уж плохо работала для своего времени и своего класса.

Мне в 2001 подарили ZX-клон "Компаньон-2" вместе с монитором Электроника (не помню конкретной модели). Мы с пацанами на нём играли практически сутками, от БП запашина стояла - только в путь. Ни разу не ремонтировали и корпус не вскрывали.

Отдали его одному из родственников в 2003, когда купили 3 пентиум с 95 виндой.

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

Вывод: что первый функцию выполнял (для игр) и глючил, что второй функцию выполнял и глючил. Можно тогда сказать, что они оба хреново работали :)

P.S. Я не призываю пересаживаться музейные экспонаты, они для меня, как часть истории нашей страны: их проектировали (часть может копировали), производили и работали на них миллионы моих соотечественников.

Пылесос - должен сосать. Совковые пылесосы сосали плохо (молодые были еще, так то они рассасывались) и 80% времени ремонтировались.

У нас был "Урал-3", до него была чайка вроде, в середине двухтысячных поменяли на Samsung. Что характерно, самсунг тоже ломался, конечно реже, но таки ломался. Урал на огороде работает до сих пор.

Алгоритм уборки не поменялся - пылесосим 15 минут (зависит от площади помещения), моем пол 15 минут. Сейчас, разумеется, есть продвинутые модели, но у меня пока не хватает денег на них.

Советские люди, как я понимаю десятки миллионов выпущенных пылесосов ставили на подоконник и показывали гостям, вместо того, чтобы пылесосить? Или сосали пыль через трубочку, вместо использования купленного пылесоса?

Телевизор - должен показывать. Про СССРные телевизоры рассказывать смысла нет. 

Так они вообще не показывали? Разве никто не смотрел телевизор, их 200 млн. с 1939 по 1990 гг. произвели в СССР?

Пародия на выполнения функции. Не более.

Техника либо выполняет функцию, либо нет. Вы же пользовались и телевизором, и пылесосом, и холодильником, а не смотрели в окно, подметали пол веником и хранили продукты в яме со льдом, когда перечисленная техника стояла у Вас дома. И на советских ЭВМ работали/учились, а не просто стояли рядом, приговаривая, какое же это древнее убожество, я ни на чем кроме IBM PC работать не буду.

Так можно сказать, что функционал Z3 на фоне нынешних PC вообще никакой, но Вы же не говорили про технологическое отставание техники СССР, а просто сказали, что она работала плохо и все.

Хреново оно всё работало, в ста случаях из ста. Худо-бедно функцию выполняло, но и только.

Разве задача техники не заключается как раз в выполнении своей функции? Или надо обязательно, что бы еще непредусмотреный производителем функционал был, например, ЭВМ кофе варить должна и массаж делать?

И что значит хреново? Быстрее и качественнее будет сделать без техники, чем с ней?

Однако, например, в стандартах не говорится про ноль.

Стандарт языка Си ISO/IEC 9899:2011 § 6.3.2.3 Pointers :

Hidden text

An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant. If a null pointer constant is converted to a pointer type, the resulting pointer, called a null pointer, is guaranteed to compare unequal to a pointer to any object or function.

В K&R § 5.4. Адресная арифметика:

Hidden text

Язык С гарантирует, что 0 никогда не бывает адресом данных, поэтому возвращение нуля можно использовать как сигнал аварийного завершения — в данном случае нехватки места в буфере памяти.

Указатели и целые числа не употребляются вместе как взаимозаменяемые значения. Нуль — единственное исключение. Нулевую константу можно присваивать указателю, и указатель можно сравнивать с простым числовым нулем. Часто вместо нуля используется символическая константа NULL, которая более четко показывает, что это не просто число, а специальное значение указателя.

Насчет стандарта C++ не знаю.

Тогда и проверка

if (ptr == NULL)

будет правильным, единственным и очевидным выбором.

Функция malloc возвращает null pointer (ISO/IEC 9899:2011 § 7.22.3.4).

NULL - это просто макрос (символическая константа) нулевого указателя, которая действительно определяется реализацией (ISO/IEC 9899:2011 § 7.19 3). Т.е. он относится к стандартной библиотеке (определен в заголовочном файле), а намертво не вшит в язык, как ключевые слова, например.

Таким образом, будут легальны и остальные проверки:

if (!ptr)

if (ptr == 0)

как-бы существуют (или существовали) платформы (и компиляторы под них), где NULL не равно 0.

Если заниматься буквоедством, то целочисленный литерал 0, приведенный к указателю на void, это не ноль :)

#define NULL ((void *)0)

Спасибо за развернутый ответ.

Выберу DX12, так и так работы непочатый край будет :) Заодно и английский прокачаю, т.к. на русском максимум учебники по 10 версии видел. Даже MSDN на русском читать сложно местами – кругом окна окон, процедуры процедур и потоки потоков :)

Разрешите еще вопрос по C++. От чего можно поначалу отказаться, в том плане, что в работе не особо и требуется. Например, какие-нибудь части стандартной библиотеки?

И как я понял, в крупных студиях огромные кодовые базы с двухтысячных/десятых годов + разработчики компиляторов годами могут не добавлять возможности языка из новых стандартов, отчего какой стандарт маст-хэв (C++11 или должен быть сильнее позже), а с какими можно только по верхам ознакомиться?

Проблема больше плана "я хочу в студию A, она в стране B, но мне не дают визу, так как образование не профильное".

С учетом необходимого объема знаний и навыков для входа в профессию, для меня вопрос о переезде в ближайшем будущем не будет стоять :)

У меня вопрос о собеседованиях на вакансию программиста графики – каким образом там оцениваются знания по математике? И если нет профильного математического или CS образования, то вход закрыт? Математика и лоу-левел не пугает – наоборот интересно, хоть у меня высшее художественное (компьютерная графика).


И еще такой вопрос. Сейчас после C приступаю к изучению C++, и хочу параллельно к своей программе (написана на Си с GUI на WinAPI, использую почти каждый день в работе – рассчитывает загиб и другие параметры конструкций из металлических труб) добавить вьюпорт с 3D изображением изделия. Планирую DirectX использовать и параллельно его осваивать вместе с математикой и плюсами, но не знаю какую версию взять - 11 или 12? Знание 11 версии обязательно для работы, или это неактуально уже?

12 ...
14

Information

Rating
2,751-st
Location
Россия
Registered
Activity

Specialization

Программист
C
C++