Что характерно, читаемый и логичный, если знать математику и 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, это не ноль :)
Выберу DX12, так и так работы непочатый край будет :) Заодно и английский прокачаю, т.к. на русском максимум учебники по 10 версии видел. Даже MSDN на русском читать сложно местами – кругом окна окон, процедуры процедур и потоки потоков :)
Разрешите еще вопрос по C++. От чего можно поначалу отказаться, в том плане, что в работе не особо и требуется. Например, какие-нибудь части стандартной библиотеки?
И как я понял, в крупных студиях огромные кодовые базы с двухтысячных/десятых годов + разработчики компиляторов годами могут не добавлять возможности языка из новых стандартов, отчего какой стандарт маст-хэв (C++11 или должен быть сильнее позже), а с какими можно только по верхам ознакомиться?
Проблема больше плана "я хочу в студию A, она в стране B, но мне не дают визу, так как образование не профильное".
С учетом необходимого объема знаний и навыков для входа в профессию, для меня вопрос о переезде в ближайшем будущем не будет стоять :)
У меня вопрос о собеседованиях на вакансию программиста графики – каким образом там оцениваются знания по математике? И если нет профильного математического или CS образования, то вход закрыт? Математика и лоу-левел не пугает – наоборот интересно, хоть у меня высшее художественное (компьютерная графика).
И еще такой вопрос. Сейчас после C приступаю к изучению C++, и хочу параллельно к своей программе (написана на Си с GUI на WinAPI, использую почти каждый день в работе – рассчитывает загиб и другие параметры конструкций из металлических труб) добавить вьюпорт с 3D изображением изделия. Планирую DirectX использовать и параллельно его осваивать вместе с математикой и плюсами, но не знаю какую версию взять - 11 или 12? Знание 11 версии обязательно для работы, или это неактуально уже?
Unigine уже 18 лет как выпущен.
Только что нашел модули с сишными файлами у них в репозитории, голова прямо кружится от такого объёма проделанной Гайджинами работы за все годы :)
Спасибо за статью.
Что характерно, читаемый и логичный, если знать математику и 3D помимо C/C++.
Разрешите поинтересоваться, а на Си (без плюсов) сейчас хоть часть кода пишут, или используют просто как подмножество в рамках C++? Заглядывал в выложенные исходники DagorEngine, но Сишных файлов не получилось найти, хотя указано, что треть на Си (может либы с заголовками).
Я понимаю, что разговор в ветке по какой-то причине ушел в сторону товаров народного потребления, мороженного, бытовой и с/х техники, но всё же мой первый вопрос был по теме обсуждаемой статьи, а именно: о компьютерной технике в СССР (в т.ч. об импортной, если читать статью внимательно), которая представлена на экспозиции. Также в рамках обсуждения предложения stackjava о подключении этих компьютеров, чтобы посмотреть как они работают.
Почему же она работала "плохо", если она свою функцию исполняла? Мне в контексте ЭВМ показалось, что это взаимоисключающие характеристики.
Лично моё мнение, что эта техника не так уж плохо работала для своего времени и своего класса.
Мне в 2001 подарили ZX-клон "Компаньон-2" вместе с монитором Электроника (не помню конкретной модели). Мы с пацанами на нём играли практически сутками, от БП запашина стояла - только в путь. Ни разу не ремонтировали и корпус не вскрывали.
Отдали его одному из родственников в 2003, когда купили 3 пентиум с 95 виндой.
Функционала у последнего было на порядки больше, но он также тормозил, зависал и глючил, только делал это по-своему.
Вывод: что первый функцию выполнял (для игр) и глючил, что второй функцию выполнял и глючил. Можно тогда сказать, что они оба хреново работали :)
P.S. Я не призываю пересаживаться музейные экспонаты, они для меня, как часть истории нашей страны: их проектировали (часть может копировали), производили и работали на них миллионы моих соотечественников.
У нас был "Урал-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++ не знаю.
Функция malloc возвращает null pointer (ISO/IEC 9899:2011 § 7.22.3.4).
NULL - это просто макрос (символическая константа) нулевого указателя, которая действительно определяется реализацией (ISO/IEC 9899:2011 § 7.19 3). Т.е. он относится к стандартной библиотеке (определен в заголовочном файле), а намертво не вшит в язык, как ключевые слова, например.
Таким образом, будут легальны и остальные проверки:
Если заниматься буквоедством, то целочисленный литерал 0, приведенный к указателю на void, это не ноль :)
Большое спасибо за пояснения и ссылку на C++ FAQ.
Спасибо за развернутый ответ.
Выберу DX12, так и так работы непочатый край будет :) Заодно и английский прокачаю, т.к. на русском максимум учебники по 10 версии видел. Даже MSDN на русском читать сложно местами – кругом окна окон, процедуры процедур и потоки потоков :)
Разрешите еще вопрос по C++. От чего можно поначалу отказаться, в том плане, что в работе не особо и требуется. Например, какие-нибудь части стандартной библиотеки?
И как я понял, в крупных студиях огромные кодовые базы с двухтысячных/десятых годов + разработчики компиляторов годами могут не добавлять возможности языка из новых стандартов, отчего какой стандарт маст-хэв (C++11 или должен быть сильнее позже), а с какими можно только по верхам ознакомиться?
С учетом необходимого объема знаний и навыков для входа в профессию, для меня вопрос о переезде в ближайшем будущем не будет стоять :)
У меня вопрос о собеседованиях на вакансию программиста графики – каким образом там оцениваются знания по математике? И если нет профильного математического или CS образования, то вход закрыт? Математика и лоу-левел не пугает – наоборот интересно, хоть у меня высшее художественное (компьютерная графика).
И еще такой вопрос. Сейчас после C приступаю к изучению C++, и хочу параллельно к своей программе (написана на Си с GUI на WinAPI, использую почти каждый день в работе – рассчитывает загиб и другие параметры конструкций из металлических труб) добавить вьюпорт с 3D изображением изделия. Планирую DirectX использовать и параллельно его осваивать вместе с математикой и плюсами, но не знаю какую версию взять - 11 или 12? Знание 11 версии обязательно для работы, или это неактуально уже?