Pull to refresh
78
0
Василий Тицкий @qehgt

User

Send message

Наблюдения и Наука

Reading time6 min
Views14K
Несколько последних постов позволили сформулироваться точке зрения, но чтобы она не выглядела «взятой с потолка», нужно сделать небольшой экскурс в историю. Пройтись во самым вехам, не сильно углубляясь в детали.

Итак, начнём с древнегреческой науки
Читать дальше →
Total votes 65: ↑53 and ↓12+41
Comments47

Ловушки языка С++

Reading time3 min
Views49K
Было бы неплохо сделать серию статей, в которых описывались различные не очевидные «особенности» языков программирования. Во-первых, «предупреждён — значит, вооружён», во-вторых, знание их позволяет глубже понимать язык и объяснить, в случае чего, чем они опасны. Даже если в своём собственном коде такие конструкции не используются, с этими ловушками можно встретиться при разборе чужого кода или работая в команде.
Читать дальше →
Total votes 35: ↑19 and ↓16+3
Comments49

Реализация exceptions на plain C

Reading time4 min
Views6.6K
Продолжение вот этой статьи habrahabr.ru/post/131212, где я собирался показать, как «и ошибки удобно обрабатывать и exceptions при этом не использовать», да всё руки не доходили.

Итак, будем считать, что у нас ситуация, что «настоящие C++ exceptions» использовать нельзя — например, языком разработки является C или компилятор С++ для нашей платформы не поддерживает exceptions (или формально поддерживает, а реально этим пользоваться нельзя). Это, конечно, нетипично для desktop приложений, но вполне обычно для embedded разработки.
Читать дальше →
Total votes 47: ↑39 and ↓8+31
Comments50

Exceptions и производительность

Reading time5 min
Views5.7K
Решил выложить небольшое исследование на тему того, как влияет поддержка исключений С++ на общую производительность кода.

Мой опыт работы включает в себя несколько лет разработки под разные встроенные системы, где производительность постоянно приходится учитывать при написании кода (системы реального времени, обрабатывающие большой объём информации — скорости процессора и памяти там никогда не бывало «много»). Соответственно, в этой среде программисты обычно достаточно хорошо представляют себе, какие накладные расходы несёт (или не несёт) та или иная возможность, предоставляемая языком С++. К примеру,
Читать дальше →
Total votes 42: ↑31 and ↓11+20
Comments38

Чем плох GNU make?

Reading time16 min
Views26K
GNU make — широко известная утилита для автоматической сборки проектов. В мире UNIX она является стандартом де-факто для этой задачи. Являясь не такой популярной среди Windows-разработчиков, тем не менее, привела к появлению таких аналогов, как nmake от Microsoft.

Однако, несмотря на свою популярность, make — во многом ущербный инструмент.
Читать дальше →
Total votes 120: ↑104 and ↓16+88
Comments84

Коды возврата & исключения

Reading time3 min
Views17K
Замечательные статьи публиковались в последнее время, хотелось бы добавить ещё несколько абзацев по данной теме.

Уважаемые авторы предыдущих топиков как-то упускали тот момент (или мне показалось? или это само-собой подразумевается?) что exceptions возникли как инструмент для решения весьма утилитарной задачи —
Читать дальше →
Total votes 70: ↑64 and ↓6+58
Comments53

Несколько слов о размере структур в С/С++ и о том, почему так получилось

Reading time3 min
Views33K
Ниже по тексту термином «платформа» будем называть любой заданный набор из процессора, компилятора и операционной системы, под которой скомпилированный код будет запускаться.

Исторически язык C создавался таким, что среди главных целей, положенных в его основу есть такие:
  • быть максимально независимым от какой-то конкретной платформы,
  • быть максимально эффективным на всех платформах. В идеале — на всех.

Немножко о разнообразии платформ. Их (платформ) существует огромное количество — среди процессоров есть и 16-битные, и 32-битные, и 64-битные. Есть такие, которые умеют выполнять операции с плавающей точкой на аппаратном уровне, какие-то поддерживают операции с двойной точностью, а в каких-то процессорах FPU отсутствует полностью. Процессоры отличаются также внутренним порядком следования байт в слове (big/little endian), как именно процессор работает с внешней памятью, и т.д. и т.п.

И на весь этот зоопарк существует один-единственный Стандарт языка C. Как же это удалось? Вот тут и начинается самое интересное.

Читать дальше →
Total votes 109: ↑99 and ↓10+89
Comments53

Information

Rating
Does not participate
Location
Richmond Hill, Ontario, Канада
Date of birth
Registered
Activity