в настоящий момент 6.3.0, но имею и время от времени "тестирую" свои проекты в версиях:
4.9.2
5.2.1
6.1.1
8.2.0
9.1.0
9.2.0
10.1.0
11.1.0
имею, но более не пользуюсь, т.к. отсутствует поддержка __flash:
3.3.2 (классика WinAVR)
3.4.5
Добавлено after 1 minute 27 seconds:
из "глюков" могу лишь сказать, что, кажется, до версии 6.х.х LTO обещано, но либо не работает, либо выдает ошибки.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
VladislavS писал(а):Потому что всё работало(ет) на всех версиях.
вопрос был не про достоинства IAR, а про недостатки AVR-GCC, которые вы лично зафиксировали. ответ по существу будет?
VladislavS писал(а):Просто ставишь и работаешь без всяких "тестирую".
так все, что я "тестирую", работает, если говорить о прошивке, генерируемой компилятором. тестирование - это проверка того, уменьшился ли объем прошивки, как ведут себя новые ключи оптимизации и т.п.
как я уже говорил, всё, чем я пользуюсь, начиная с версии 6.3.0 (которая у меня есть), работает без нареканий. что именно не работает (не работало) у вас?
P.S. только вот avr-size разработчики, по моему мнению, испохабили по сравнению с версией от WinAVR, поэтому пользуюсь древней версией
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
[uquote="ARV",url="/forum/viewtopic.php?p=4198417#p4198417"]только вот avr-size разработчики, по моему мнению, испохабили по сравнению с версией от WinAVR, поэтому пользуюсь древней версией[/uquote]
Они её не испохабили, а перестали делать патч для AVR, видимо не хотят возиться с обновлениями.
Добрый день. Подскажите пожалуйста по С++.
Хочу создать многомерный массив - допустим int array[3][255]
Вопрос: как компилятор эти по сути три массива расположит в памяти? Три одномерных массива непрерывно один за другом?(в прямом порядке расположения - от меньшего адреса к большему?) , как это обычно происходит?
Или расположит их в памяти с какими-то промежутками,в неизвестном мне порядке?
Вроде того:
xxxxx[array0][array1][array2]xxxxxxxxxxxxxxxxx
или
xxxxx[array2]xxxxxxxx[array0]x[array1]xxxxxxxx
В первый раз меня ударило током - и я подумал что ни черта не соображаю в электричестве. Во второй раз был аккуратнее и меня не ударило - теперь я возомнил из себя крутого микроэлектронщика.
VladislavS СПС.
Я очень стесняюсь,т.к. вопрос видимо очень глупый. Я даже не уверен, что смогу корректно сформулировать свой вопрос. Но все-же попытаюсь задать его. Право мне неловко.
Насколько мне известно, у С++ есть какие-то версии. От древних,до более современных. Которые чем-то там отличаются.
Я скачал Microsoft Visual Studio Express 2017 с оффсайта.
1) как узнать/куда смотреть какая версия С++ используется в моей Визуал студио? ( Это грустною, тем более ВизуалСтудия имеет справку на русском языке,но я не понимаю куда тыкать в "справку"дабы узнать эту информацию.)
2) какая версия С++ на данный момент актуальна?
3) меня,как новичка должна заботить версия языка?
В первый раз меня ударило током - и я подумал что ни черта не соображаю в электричестве. Во второй раз был аккуратнее и меня не ударило - теперь я возомнил из себя крутого микроэлектронщика.
[uquote="vek",url="/forum/viewtopic.php?p=4201729#p4201729"]1) как узнать/куда смотреть какая версия С++ используется в моей Визуал студио? ( Это грустною, тем более ВизуалСтудия имеет справку на русском языке,но я не понимаю куда тыкать в "справку"дабы узнать эту информацию.)[/uquote]
Может на оффсайте? Тык!
[uquote="vek",url="/forum/viewtopic.php?p=4201729#p4201729"]2) какая версия С++ на данный момент актуальна?[/uquote]Сложный вопрос. Смотря для чего. Я считаю, что сейчас уже время неспешно переползать с С++17 на С++20.
[uquote="vek",url="/forum/viewtopic.php?p=4201729#p4201729"]3) меня,как новичка должна заботить версия языка?[/uquote]Не думаю. Просто изучайте язык раздел за разделом. Когда дойдёте до продвинутых техник, то сами поймёте что вам надо.
Я так понял,это связано с приоритетом математических и логических операций.
Вообще,по моей логике: сначала выполняются математические операции в уравнении,согласно приоритета, а уже потом всякие "return". Например return 2+2*2 // должно вернуть 6.
Не очень пойму разницу в пре и пост инкременте/декременте.
В первый раз меня ударило током - и я подумал что ни черта не соображаю в электричестве. Во второй раз был аккуратнее и меня не ударило - теперь я возомнил из себя крутого микроэлектронщика.
vek писал(а):Не очень пойму разницу в пре и пост инкременте/декременте.
как можно это не понять?
пре- сначала изменяет переменную, а потом её значение подставляется в выражение.
пост- сначала подставляет в выражение значение переменной, а потом её меняет.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Вопрос про приоритет пре и пост инкремента/декремента. Вот примеры,которые у меня получились:
int main()
{
int i = 0;
return i++;
}
/// программа завершает работу с кодом 0. Вроде даже понятно почему
______________________
int main()
{
int i = 0;
return ++i;
}
/// программа завершает работу с кодом 1. Вроде даже понятно почему.
___________________________
int main()
{
int i = 0;
return (i++);
}
/// программа завершает работу с кодом 0. Не вполне понятно почему. Ведь действие в скобках вроде приорететнее ?
______________
Или пост декремент имеет настолько "днищенский" приоритет,что даже скобками ему не помочь? (как например в выражениях 2+2*2 и (2+2)*2 )
В первый раз меня ударило током - и я подумал что ни черта не соображаю в электричестве. Во второй раз был аккуратнее и меня не ударило - теперь я возомнил из себя крутого микроэлектронщика.
повторяю: в вашем вопросе нет никаких приоритетов! там просто действие операторов внутри выражения. по полочкам:
в выражении return x++ фактически используется неявный оператор присваивания значения выражения x++. значение это вычисляется так: сначала берется значение x, которое будет возвращено, а затем будет увеличение x на 1. т.е. в return попадет содержимое x до его увеличения!
в случае с ++x все ровно наоборот: в return попадет уже модифицированное значение переменной. где тут приоритет?! даже если вы в сто скобок поместите, раскрытие скобок кончится тем, ДО или ПОСЛЕ изменения будет взято значение.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
[uquote="vek",url="/forum/viewtopic.php?p=4203627#p4203627"]int main()
{
int i = 0;
return (i++);
}
/// программа завершает работу с кодом 0. Не вполне понятно почему. Ведь действие в скобках вроде приорететнее ?[/uquote]
Приоритетнее чего? Есть оператор return и выражение в скобках, при этом в самом выражении кроме инкремента ничего нет и скобки никакой приоритет операций изменить не могут. Смысл пост-инкремента в том, что сначала возвращается результат выражения, а потом уже инкрементится переменная.
Спс за направление. разобрался как работать с отладчиком, и стало понятнее. Так сказать на пальцах.
В первый раз меня ударило током - и я подумал что ни черта не соображаю в электричестве. Во второй раз был аккуратнее и меня не ударило - теперь я возомнил из себя крутого микроэлектронщика.