Ну это для себя было, точнее в свободное время для курса в университете(на волонтерских началах пока что), но чисто дома. К стандарту привык, потому что когда ревью кода делаю(сам писал давно очень, а ревью делаю переодически), моя задача проверить код на стандарт первым делом. Типы тоже указаны в стандарте.Скорее всего я его отдельно очень упрощенный для университета сделаю.
Да точно, еще раз вглянул стандарт С++
The parameter-declaration-clause determines the arguments that can be specified, and their processing,
when the function is called. [Note: the parameter-declaration-clause is used to convert the arguments
specified on the function call; see 5.2.2. ] If the parameter-declaration-clause is empty, the function takes
no arguments. The parameter list (void) is equivalent to the empty parameter list.
Да, вы правы, в С++ в нем смысла нет: (void) и () — это одно и то же. Но так написано в стандарте кодирования. А в стандарте написано, потому что видимо раньше писали на Си, и перетекло оттуда.
А еще lint ругается — но сам же пишет, что в С++ это означает тоже самое что с void, что без void. В общем, чтобы удовлетворить lint и пройти без замечаний.
1717 empty prototype for function declaration, assumed '(void)' — An empty prototype,
as in:
void f();
has a different meaning in C than in C++. In C it says nothing about the arguments of the function;
in C++, it says there are no arguments. This message is not given for member function
declarations or for function definitions. Rather, weaker Elective Notes (1917 and 1918) are
given. This is because the chance of ambiguity does not exist in these cases. [11 section 8.2.5]
Про студентов, возможно вы и правы. Но предполагалось, что все даваться им будет на последнем курсе, когда микроконтроллеры уже пройдены, у них отдельный курс по ним есть. Хотя да, предполагаю, что будет так как вы говорите — но попробуем, рассматриваю студентов, как выразился один мой коллега, в качестве стволовой клетки — можно сделать кого угодно, главное чтобы был интерес
По поводу IDE, тут стоит уточнить, что IDE мы используем только для отладки и очень редко. Для сборки используется обычный make файл, сборка прошивается сразу в плату где проходят смоке тесты. И только в случае, если что-то вдруг не работает, делает тестовый проект в IDE для отладки. Но на моей практике, такое было редко. Кстати мейк есть и в моем проекте, просто я не доделал и бросил — это не входило в мою задачу. Там и линтом, например обертка проверялась, чтобы более менее код чистый был.
С++ мы используем у себя во всех проектах, поэтому если студент пришел к нам скажем на практику, первым делом он должен хотя бы на начальном уровне знать его — дальше дело практики.
Основное требование — простота кода и его поддерживаемость, чтобы, скажем — через 3 года, любой инженер мог открыть архитектуру, посмотреть код и быстро все понять. Чистый Си в этом плане проигрывает С++, раньше мы на Си программировали как на С++ для этого, используя структуры в качестве классов. Но это тоже еще то извращение.
Здравствуйте,
IAR лицензионный мы используем на работе, и привыкли к нему, задача наша, найти толковыъ студнтов и потом по возможности взять на работу, а ведь хорошо, когда они уже знают среду в которой мы работаем.
Триал версия IAR для ARM доступна со всеми фичами для приложений до 30 кБ кода. Собтсвенно, это меня устраивает, код получился значительно меньше.
С++ мне нравится по одной простой причине — что при грамотном подходе код получается очень читабельным и понятным. Кроме того, поскольку кодирование это вообще у нас второстепенно :) на первом месте разработка архитектуры, а она у нас делается на UML. С диаграмм UML потом очень удобно все перекладывать в код и классы, чисто теоретически можно их потом автоматом генерить (но это моветон). Для коммерческих проектов, конечно все это делается вручную. Зато по архитектуре сразу понятна задумка автора и можно на раннем этапе указать на ошибки.
А вообще микроконтроллеры шагнули далеко вперед за 8 лет :) И вот микроконтроллер за 2 бакса с 16 кБатам ОЗУ и 128 ПЗУ. поэтому использование С++ тут как бы уже нормально, но если очень надо, можно использовать С++ и на более мелких микроконтроллерах, только надо будет например переопределить new, чтобы динамически память не выделялась, по возможности не использовать виртуальные функции и и еще ряд ухищрений, но думаю, что сейчас это уже не нужно — памяти хватит для любого нашего проекта :)
Он возможно и не проще, потому что я не спец по гиту.
В данном случае, если я вас правильно понял, то это можно сделать двумя путями в TFS, по нашему процессу.
1. Встать на ветку разработчика Foo J. Bar, нажать на файл foobar.c, и получить весь список changesetов. Берем чендсеты с аааа и смотрим до вввв… см картинку, там поле юзер скрыто… буква S. (это я он же lamerok), потому что к сожалению пользователя Foo J. Bar нету.
2. Тоже самое только с метками
Единственно проблема с описание, хотя оно есть, но фильтра по нему нет, хотя можно и отсорторовать. Но опять, же все зависит от того, как у вас построен процесс, вы его строите, так, чтобы не возникало желаний делать такие запросы :) Но это ИМХО.
Нет, я не говорю, что это решение лучше, я лишь хочу показать, что оно простое в использовании, свои задачи решает, и имеет свои плюсы, как впрочем и минусы.
Идеальной системы нет и не будет.
В принципе меня устраивал и ClearCase, но просто не дружит IBM с Microsoft, отсюда, куча проблем была с обоими…
Возможно, но опять же я не утверждаю что все компании :) Многие, возможно большинство, на этом построено и их развитие.
Сделал один раз, у тебя купили, купили поддержку, и платят каждый год, за то, чтобы у проблем не было, а возможно за 10 лет ничего и не случиться.
Это как страховка… купил, а в аварию не попал.
А ты на эти деньги живешь, обновляешь, всякие фичи каждые два года выпускаешь, все нормально, все довольны :)
Все верно… так и выходит. Из-за одного антивируса всем компьютеры поменяли на XEONы. Трудно понять логику Крупных корпораций, но скорее всего, она заключается в том, что лучше заплатить побольше денег и потом иметь меньше гемора и хорошую поддержку.
Только так могу объяснить…
Для малых и средних, все верно — хорошие, проверенные временем бесплатные системы.
Ну скажем так, большим компаниям, типа Моторолы, Интел, Сименс и так далее, нужна нормальная сервисная поддержка по всему миру. Если что случиться с бесплатной системой контроля, например в подразделениями во Вьетнаме, к кому обращаться за помошью.
Именно поэтому в Мотороле, например, запрещено… да и у нас тоже.
Основной минус таких систем, как и SVN — это бесплатность. Они просто запрещены к использованию в большинстве корпораций, поэтому все реальное человечество работает на платных системах типа TFS и ClearCase, хотя я конечно же ничего против не имею против бесплатных систем, и даже за их использование, например, Тортила мне нравиться, вот только она у нас запрещена.
Спасибо за совет,
Я попытаюсь дальше эту тему раскрыть, только начала писать…
Дальше напишу про права, политику и собственно и от лица разработчика сделаем код и попробуем его смерджить, черновик статьи сделал, в ближайшее время выложу, надо немного подредактировать.
The parameter-declaration-clause determines the arguments that can be specified, and their processing,
when the function is called. [Note: the parameter-declaration-clause is used to convert the arguments
specified on the function call; see 5.2.2. ] If the parameter-declaration-clause is empty, the function takes
no arguments. The parameter list (void) is equivalent to the empty parameter list.
А еще lint ругается — но сам же пишет, что в С++ это означает тоже самое что с void, что без void. В общем, чтобы удовлетворить lint и пройти без замечаний.
1717 empty prototype for function declaration, assumed '(void)' — An empty prototype,
as in:
void f();
has a different meaning in C than in C++. In C it says nothing about the arguments of the function;
in C++, it says there are no arguments. This message is not given for member function
declarations or for function definitions. Rather, weaker Elective Notes (1917 and 1918) are
given. This is because the chance of ambiguity does not exist in these cases. [11 section 8.2.5]
По поводу IDE, тут стоит уточнить, что IDE мы используем только для отладки и очень редко. Для сборки используется обычный make файл, сборка прошивается сразу в плату где проходят смоке тесты. И только в случае, если что-то вдруг не работает, делает тестовый проект в IDE для отладки. Но на моей практике, такое было редко. Кстати мейк есть и в моем проекте, просто я не доделал и бросил — это не входило в мою задачу. Там и линтом, например обертка проверялась, чтобы более менее код чистый был.
С++ мы используем у себя во всех проектах, поэтому если студент пришел к нам скажем на практику, первым делом он должен хотя бы на начальном уровне знать его — дальше дело практики.
Основное требование — простота кода и его поддерживаемость, чтобы, скажем — через 3 года, любой инженер мог открыть архитектуру, посмотреть код и быстро все понять. Чистый Си в этом плане проигрывает С++, раньше мы на Си программировали как на С++ для этого, используя структуры в качестве классов. Но это тоже еще то извращение.
IAR лицензионный мы используем на работе, и привыкли к нему, задача наша, найти толковыъ студнтов и потом по возможности взять на работу, а ведь хорошо, когда они уже знают среду в которой мы работаем.
Триал версия IAR для ARM доступна со всеми фичами для приложений до 30 кБ кода. Собтсвенно, это меня устраивает, код получился значительно меньше.
С++ мне нравится по одной простой причине — что при грамотном подходе код получается очень читабельным и понятным. Кроме того, поскольку кодирование это вообще у нас второстепенно :) на первом месте разработка архитектуры, а она у нас делается на UML. С диаграмм UML потом очень удобно все перекладывать в код и классы, чисто теоретически можно их потом автоматом генерить (но это моветон). Для коммерческих проектов, конечно все это делается вручную. Зато по архитектуре сразу понятна задумка автора и можно на раннем этапе указать на ошибки.
А вообще микроконтроллеры шагнули далеко вперед за 8 лет :) И вот микроконтроллер за 2 бакса с 16 кБатам ОЗУ и 128 ПЗУ. поэтому использование С++ тут как бы уже нормально, но если очень надо, можно использовать С++ и на более мелких микроконтроллерах, только надо будет например переопределить new, чтобы динамически память не выделялась, по возможности не использовать виртуальные функции и и еще ряд ухищрений, но думаю, что сейчас это уже не нужно — памяти хватит для любого нашего проекта :)
В данном случае, если я вас правильно понял, то это можно сделать двумя путями в TFS, по нашему процессу.
1. Встать на ветку разработчика Foo J. Bar, нажать на файл foobar.c, и получить весь список changesetов. Берем чендсеты с аааа и смотрим до вввв… см картинку, там поле юзер скрыто… буква S. (это я он же lamerok), потому что к сожалению пользователя Foo J. Bar нету.
2. Тоже самое только с метками
Единственно проблема с описание, хотя оно есть, но фильтра по нему нет, хотя можно и отсорторовать. Но опять, же все зависит от того, как у вас построен процесс, вы его строите, так, чтобы не возникало желаний делать такие запросы :) Но это ИМХО.
Идеальной системы нет и не будет.
В принципе меня устраивал и ClearCase, но просто не дружит IBM с Microsoft, отсюда, куча проблем была с обоими…
Сделал один раз, у тебя купили, купили поддержку, и платят каждый год, за то, чтобы у проблем не было, а возможно за 10 лет ничего и не случиться.
Это как страховка… купил, а в аварию не попал.
А ты на эти деньги живешь, обновляешь, всякие фичи каждые два года выпускаешь, все нормально, все довольны :)
Точно знаю, что Моторола, да и вообще многие американские конторы используют ClearCase.
Только так могу объяснить…
Для малых и средних, все верно — хорошие, проверенные временем бесплатные системы.
Именно поэтому в Мотороле, например, запрещено… да и у нас тоже.
Я попытаюсь дальше эту тему раскрыть, только начала писать…
Дальше напишу про права, политику и собственно и от лица разработчика сделаем код и попробуем его смерджить, черновик статьи сделал, в ближайшее время выложу, надо немного подредактировать.