Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Алгоритмы, задачи по программированию, логические игры _ Интересный тест по Си (без ++)

Автор: Алексей1153 12.10.2010, 12:39

http://chipenable.ru/index.php/programming-c/68-c-test-the-0x10-best-questions-for-would-be-embedded-programmers.html

:)

Автор: Iron Bug 12.10.2010, 15:37

по-моему, как-то слишком уж примитивно. хотя... программисты бывают разные :) я лично видела программистов (с высшим специальным образованием!), которые не знали, что в памяти байты в слове переставляются местами и первый раз от меня услышали о "магической" перестановке в четырёхбайтных конструкциях. а до того, как я краем уха услышала, что у них "непонятные глюки" при передаче данных в последовательном канале, они аж вчетвером бились и не могли понять, в чём проблема.
так что и такие тесты иногда помогают ...

Автор: ufna 12.10.2010, 18:01

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

Автор: Алексей1153 12.10.2010, 19:03

ценность сего произведения не столько в том, что это тест, а в том, что тут собраны самые редкие грабли. Вообще, сколько с Си/С++ не сталкиваешься, всегда что-то новое узнаётся )) Ну и как освежающая в памяти некоторые вещи шпаргалка - тоже сойдёт )

Автор: Iron Bug 13.10.2010, 6:59

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

Автор: Алексей1153 13.10.2010, 7:23

Цитата(Iron Bug @ 13.10.2010, 9:59) *
для меня всё, что описано в статье - обычная ежедневная рутина

для меня почти всё тоже. Но некоторыми вещами не приходилось пользоваться )) Например, объявлять указатель на массив вот таким извращённым способом ))
int (*a)[10]; // Указатель на массив из десяти целых

хотя, полезно знать, что такая конструкция в языке есть, ибо можно как-нибудь наткнуться в чужом коде

Автор: Iron Bug 13.10.2010, 8:12

у меня как раз указателей иногда каких только не бывает. правда, это в коде, который "для юзеров". хотя, конечно, какой
это код для юзеров... он работает с устройствами, а юзеру выдаёт результаты или позволяет более-менее "дружественным" и централизованным образом регулировать сложные настройки многочисленных девайсов. иногда я пишу ещё более юзерские интерфейсы - морды. ну, те обычно вообще представляют собой нечто графическое, под wxWidgets, и имеют только одну функцию: отправлять события и данные от юзера основному модулю, который обычно консольный или сервисный и сам по себе имеет туеву хучу параметров в конфиге и командной строке, но может работать и через морду, для удобства юзеров. а то когда я говорю юзерам, что у девайса 71 параметр и их можно задать через командную строку, то у них настроение сильно портится :)

Автор: Алексей1153 13.10.2010, 8:36

Цитата(Iron Bug @ 13.10.2010, 11:12) *
что у девайса 71 параметр и их можно задать через командную строку, то у них настроение сильно портится

:D знакомо

До меня для всех приборов нашей конторы были txt файлы (наподобие конфига), где техники вносили параметры для программирования приборов, а файлик читался/зиливался какой-то поделкой предыдущего программиста. Там могли только опытные техники могли вносить. Зато теперь - может кто ни попадя (хотя, нюансы есть, но уже в логике работы приборов)

А при работе с массивами (если STL низя) предпочитаю использовать указатель + длину массива, так универсальнее и нагляднее

Автор: AD 13.10.2010, 9:29

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

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)