+2
 Просто если начать с иде, то есть шанс в этом уютном теплом мирке и законсервироваться.

Ага. А если развить идею — мы придем к тому, что компьютер тоже нужно собирать самому, притом на реле, изготовленных вручную и. т. д.

У Вас странная логика, использовать готовый набор программ уровня vim+make+gcc+gdb+openocd — это правильно, а использовать msvs — это значит сразу ставим крест на дальнейшем развитии специалиста.

Касательно IDE – это просто удобный инструмент, который позволяет сконцентрироваться на написании кода. Можно писать код хоть в ed, но я не вижу причин отказываться от удобств современных IDE. Нет, оно конечно весело искать вручную строку №123 в файле foo.c (на которую выдал ошибку компилятор), но я предпочитаю, добраться туда в один клик. Аналитично, запоминание сигнатур всех функций — это круто, но я предпочитаю когда IDE выдает мне подсказки по мере ввода с учетом понимания синтаксиса языка… Аналогично с дебагером, интеграцией с системой контроля версий, и многим другим.

Я уверен, что все фичи современной IDE можно реализовать через grep/sed/awk/regexp + … + …. Только не понимаю зачем это делать, если есть готовые удобные решения. Разве что из принципа (потому, что могу), согласно старым пионерским заветам: «Сначала сами себе создаем трудности, потом героически их преодолеваем»
  • avatar
  • e_mc2
  • 16 января 2017, 01:49
+5
Мне кажется, что это такая форма профессиональной деформации личности. Человек, который много пишет на визуальных ЯП начинает «разговривать» картинками :)

Иначе я не могу понять тягу plcist к выкладыванию картинок в каждом комментарии, притом зачастую абсолютно банальных и неуместных…
  • avatar
  • e_mc2
  • 28 декабря 2016, 22:05
0
Автор ошибся при переносе кода, в оригинале там было
(uint8_t)pgm_read_byte(&auchCRCHi[i]);
  • avatar
  • e_mc2
  • 30 ноября 2016, 15:58
0
Видимо ты забыл про тормозящие автонавигаторы на Win CE.
К сожелению тут или мультизадачность или реальное время.

Это никак не связанные вещи. Под ДОС тоже было много прог которые «тормозили» на слабых компах. Чудес не бывает, если ресурсов платформы не хватает — ОСРВ их не добавит. ОСРВ позволяет выполнять программы с детерминированным временем реакции, но это не значит, что использование такой ОС увеличивает производительность платформы.
  • avatar
  • e_mc2
  • 28 ноября 2016, 20:33
0
может тогда всеобщий скепсис рассеется-))

Даже если у Вас и получится — это не значит, что Win станет ОСРВ. В данной ОС нет штатных механизмов обеспечения гарантий времени отклика и т. д. Вы можете получить очень малое время отклика, но это не значит, что ОСРВ. Как и на оборот, ОСРВ может давать большое время отклика (и всячески внешне «тормозить»), но при этом являться ОСРВ.

У меня знакомый дяденька на работе запускал свою программку(квалифицированно написанную -))) в режиме ядра

А я под ДОС писал свой планировщик задач в защищенном режиме, значит ДОС — многозадачная стема с поддержкой PM :)
  • avatar
  • e_mc2
  • 28 ноября 2016, 18:26
+1
на многоядерных процессорах стало возможным и эффективным выделять целое ядро многопроцессора под конкретную задачу…
Да ведь дело не только в ресурсах проца (с этим, как раз, вопрос решаемый). Проблема в том, про приоритеты IRP они ка-бы есть вот только в названии IO_PRIORITY_HINT ключевое слово – HINT.
The I/O priority field in the IRP and/or file object is a hint. There is no guarantee that the I/O priority will be respected or even supported by the different drivers that are part of the storage stack.
Поэтому попытки сделать из Win ОСРВ – это натягивание совы на глобус …
  • avatar
  • e_mc2
  • 28 ноября 2016, 15:41
0
Зачем так сложно, методы… К тому же структура пустая, в студийном компиляторе 32 бита sizeof(foo) == 4 байтам, т.е. это указатель на структуру

Важно то, что bar2() получит копию объекта через неявный возов конструктора копирования.
  • avatar
  • e_mc2
  • 18 ноября 2016, 03:28
0
А ссылка разве не может быть неинициализирована?
В С++ — нельзя создать ссылку без инициализации.
Нельзя просто написать

int &b;
  • avatar
  • e_mc2
  • 18 ноября 2016, 03:09
0
Во втором варианте указатель же передается

Эм, ну ок, я по этому и написал, «подозреваю Вы имели ввиду void func(int a) (иначе это просто разные функции)”

Компилятор должен понимать разницу между ссылкой и указателем. Указатель может быть не инициализирован, его можно кастить как угодно и т. д.…

Но это все лирика, однозначно коллега AlexeyG проделал колоссальностью работу, написав интерпретатор языка.

А мы тут скатились в обсуждение С++ :)
  • avatar
  • e_mc2
  • 18 ноября 2016, 02:52
0
Да ладно :)

void func(int &a);
void func(int *a);
void func(int *a); — подозреваю Вы имели ввиду void func(int a) (иначе это просто разные функции)

Мой компилятор на код


class foo {
public:

	void dummy(void) {
		printf("Test\n");
	}

	foo(void) {
		printf("DefaultConstructor\n");
	};

	foo(const foo & dummy) {
		printf("Copy Constructor\n");

	};
};

void bar1(foo &bar) {
	bar.dummy();
}

void bar2(foo bar) {
	bar.dummy();
}

int main()
{
	printf("Create f\n");
	foo f;

	printf("Call by ref\n");
	bar1(f);
	printf("Call by copy\n");
	bar2(f);


	return 0;
}


говорит следкющее
Create f
DefaultConstructor
Call by ref
Test
Call by copy
Copy Constructor
Test
  • avatar
  • e_mc2
  • 18 ноября 2016, 02:01
0
Называется ссылкой, а физически адрес памяти, или указатель.

Ну, если так рассуждать, то все переменные — это просто место в памяти, просто разные ЯП интерпретируют это по своему…

 Например, 2 функции будут иметь абсолютно одинаковый ассемблерный код:

void func(int &a);
void func(int *a);


В первом случае — мы получаем ссылку, там будет неявное взятие адреса и т. д. Во втором — мы получаем копию (через неявный вызов конструктора копирования и т. д. Если мы говорим о с++).

Может быть я ошибаюсь (давно я с С++ не пересекался)…
  • avatar
  • e_mc2
  • 18 ноября 2016, 01:14
0
Я не настоящий сварщик, но

int a;
int &b = a;

Здесь b — это указатель на a

Это С++ и b это ссылка на 'a' а не указатель на 'a'.
  • avatar
  • e_mc2
  • 18 ноября 2016, 00:13
0
на приличном проекте оно спокойно жрет 6+ ГБ

Ну, VS тоже может отожрать 6+ Гб и не поперхнуться (не смотря на то что 32х битная, просто она стартует много процессов и это не так бросается в глаза).
  • avatar
  • e_mc2
  • 13 ноября 2016, 20:02
0
Честно говоря, я не совсем понимаю, почему в широко распространенном шылде «LCD 1602» применен не рассмотренный принцип опроса кнопок
Искать логику в схемотехнике ардуиновских шилдов — дело не благодарное. Вполне может оказаться, что кто-то изначально выпустил шилд с кнопками на АЦП с таким соотношением резисторов, и теперь все это повторяют ради «совместимости».
  • avatar
  • e_mc2
  • 13 ноября 2016, 19:56
0
Из того что помню — понравилась адекватность навигации по коду, типа find all usages/go to definition(в нетривиальных случаях типа наследование и темплейты). Сравнивал с актуальными на тот момент версиями VS (без ReSharper C++ ) и Eclipse
  • avatar
  • e_mc2
  • 11 ноября 2016, 00:03
0
Полностью поддерживаю. Конечно, нверное можно используя связку из grep+sed+regexp+…+…+ написать, например, продвинутую тулзу для рефакторинка, которая будет отличать контекст использования выражения в конкретном ЯП. Но это офигеть какая нетривиальная задача. А в большинстве современых IDE подобные вещи являются обыденными…
  • avatar
  • e_mc2
  • 10 ноября 2016, 23:11
0
Но все это может быть и у компилятора — уж с диском он точно работает
Безусловно. Более того, по поим наблюдением, именно диск является «бутылочным горлышком» при компиляции. Ибо переход на ССД дает просто дикий прирост производительности при сборке большого проекта.
  • avatar
  • e_mc2
  • 10 ноября 2016, 23:00
0
Я ее пробовал (правда давно, практически сразу как только она появилась). Было несколько фичей которые мне понравились, но в целом я для себя не нашел причин, ради чего стоило бы не нее переходить…
  • avatar
  • e_mc2
  • 10 ноября 2016, 22:59
+1
Просто очень мне любопытно понять за что любят IDE.
 

За удобство работы с кодом, интеграцию с отладчиком и прочими вещами типа системы контроля версий, таск трекерами и т. д.

А вот система сборки в IDE зачастую достаточно примитивная и часто используют внешнюю.

ИМХО единственный минус большинства современных IDE – прожорливаость по ресурсам.
  • avatar
  • e_mc2
  • 10 ноября 2016, 20:45
+1
А у тебя есть логичное объяснение,
Могу предположить, что в потоках есть какие-либо блокирующие вызовы (например чтение/запрись на диск). Если сделать количество потоков равное количеству ядер, то процессор бы во время блокировок потока простаивал…
  • avatar
  • e_mc2
  • 10 ноября 2016, 18:56