Страница 368 из 386

Re: Вопросы по С/С++ (СИ)

Добавлено: Пн мар 14, 2022 08:57:05
ARV
в настоящий момент 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 обещано, но либо не работает, либо выдает ошибки.

Re: Вопросы по С/С++ (СИ)

Добавлено: Пн мар 14, 2022 10:02:42
VladislavS
Вот, а я даже не знаю версию компилятора AVR в IAR. Потому что всё работало(ет) на всех версиях. Просто ставишь и работаешь без всяких "тестирую".

Re: Вопросы по С/С++ (СИ)

Добавлено: Пн мар 14, 2022 10:53:46
ARV
VladislavS писал(а):Потому что всё работало(ет) на всех версиях.
вопрос был не про достоинства IAR, а про недостатки AVR-GCC, которые вы лично зафиксировали. ответ по существу будет?
VladislavS писал(а):Просто ставишь и работаешь без всяких "тестирую".
так все, что я "тестирую", работает, если говорить о прошивке, генерируемой компилятором. тестирование - это проверка того, уменьшился ли объем прошивки, как ведут себя новые ключи оптимизации и т.п.
как я уже говорил, всё, чем я пользуюсь, начиная с версии 6.3.0 (которая у меня есть), работает без нареканий. что именно не работает (не работало) у вас?

P.S. только вот avr-size разработчики, по моему мнению, испохабили по сравнению с версией от WinAVR, поэтому пользуюсь древней версией

Re: Вопросы по С/С++ (СИ)

Добавлено: Пн мар 14, 2022 19:35:53
U235
[uquote="ARV",url="/forum/viewtopic.php?p=4198417#p4198417"]только вот avr-size разработчики, по моему мнению, испохабили по сравнению с версией от WinAVR, поэтому пользуюсь древней версией[/uquote]
Они её не испохабили, а перестали делать патч для AVR, видимо не хотят возиться с обновлениями.

Re: Вопросы по С/С++ (СИ)

Добавлено: Ср мар 16, 2022 15:49:02
ARV
так что там на счет глюков и кривизны avr-gcc, VladislavS? мне ждать или не стоит?

Re: Вопросы по С/С++ (СИ)

Добавлено: Пт мар 18, 2022 18:53:22
vek
Добрый день. Подскажите пожалуйста по С++.
Хочу создать многомерный массив - допустим int array[3][255]
Вопрос: как компилятор эти по сути три массива расположит в памяти? Три одномерных массива непрерывно один за другом?(в прямом порядке расположения - от меньшего адреса к большему?) , как это обычно происходит?
Или расположит их в памяти с какими-то промежутками,в неизвестном мне порядке?

Вроде того:
xxxxx[array0][array1][array2]xxxxxxxxxxxxxxxxx
или
xxxxx[array2]xxxxxxxx[array0]x[array1]xxxxxxxx

Re: Вопросы по С/С++ (СИ)

Добавлено: Пт мар 18, 2022 19:51:36
VladislavS
Одним блоком данных без промежутков индексами от меньшего к большему. Можете проверить с помощью sizeof(array).

Re: Вопросы по С/С++ (СИ)

Добавлено: Пн мар 21, 2022 17:48:00
vek
VladislavS СПС.
Я очень стесняюсь,т.к. вопрос видимо очень глупый. Я даже не уверен, что смогу корректно сформулировать свой вопрос. Но все-же попытаюсь задать его. Право мне неловко.

Насколько мне известно, у С++ есть какие-то версии. От древних,до более современных. Которые чем-то там отличаются.
Я скачал Microsoft Visual Studio Express 2017 с оффсайта.
1) как узнать/куда смотреть какая версия С++ используется в моей Визуал студио? ( Это грустною, тем более ВизуалСтудия имеет справку на русском языке,но я не понимаю куда тыкать в "справку"дабы узнать эту информацию.)
2) какая версия С++ на данный момент актуальна?
3) меня,как новичка должна заботить версия языка?

Re: Вопросы по С/С++ (СИ)

Добавлено: Пн мар 21, 2022 20:20:05
VladislavS
[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]Не думаю. Просто изучайте язык раздел за разделом. Когда дойдёте до продвинутых техник, то сами поймёте что вам надо.

Re: Вопросы по С/С++ (СИ)

Добавлено: Пн мар 21, 2022 20:20:25
ARV
имхо, судя по вопросу о размещении массива в памяти, версия С++ вас беспокоить не должна от слова вообще.

Re: Вопросы по С/С++ (СИ)

Добавлено: Пт мар 25, 2022 14:02:42
vek
Добрый день.
Вопрос, почему так возвращает ?:

return i++; // возвращает i
return ++i ; // возвращает i+1

Я так понял,это связано с приоритетом математических и логических операций.
Вообще,по моей логике: сначала выполняются математические операции в уравнении,согласно приоритета, а уже потом всякие "return". Например return 2+2*2 // должно вернуть 6.
Не очень пойму разницу в пре и пост инкременте/декременте.

Re: Вопросы по С/С++ (СИ)

Добавлено: Пт мар 25, 2022 14:07:13
ARV
vek писал(а):Не очень пойму разницу в пре и пост инкременте/декременте.
как можно это не понять?
пре- сначала изменяет переменную, а потом её значение подставляется в выражение.
пост- сначала подставляет в выражение значение переменной, а потом её меняет.

Re: Вопросы по С/С++ (СИ)

Добавлено: Пт мар 25, 2022 14:11:06
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 )

Re: Вопросы по С/С++ (СИ)

Добавлено: Пт мар 25, 2022 14:38:05
ARV
повторяю: в вашем вопросе нет никаких приоритетов! там просто действие операторов внутри выражения. по полочкам:

в выражении return x++ фактически используется неявный оператор присваивания значения выражения x++. значение это вычисляется так: сначала берется значение x, которое будет возвращено, а затем будет увеличение x на 1. т.е. в return попадет содержимое x до его увеличения!

в случае с ++x все ровно наоборот: в return попадет уже модифицированное значение переменной. где тут приоритет?! даже если вы в сто скобок поместите, раскрытие скобок кончится тем, ДО или ПОСЛЕ изменения будет взято значение.

Re: Вопросы по С/С++ (СИ)

Добавлено: Пт мар 25, 2022 14:40:13
Reflector
[uquote="vek",url="/forum/viewtopic.php?p=4203627#p4203627"]int main()
{
int i = 0;
return (i++);
}
/// программа завершает работу с кодом 0. Не вполне понятно почему. Ведь действие в скобках вроде приорететнее ?[/uquote]
Приоритетнее чего? Есть оператор return и выражение в скобках, при этом в самом выражении кроме инкремента ничего нет и скобки никакой приоритет операций изменить не могут. Смысл пост-инкремента в том, что сначала возвращается результат выражения, а потом уже инкрементится переменная.

Re: Вопросы по С/С++ (СИ)

Добавлено: Пт мар 25, 2022 15:47:05
vek
Спс за направление. разобрался как работать с отладчиком, и стало понятнее. Так сказать на пальцах.

Re: Вопросы по С/С++ (СИ)

Добавлено: Пт мар 25, 2022 18:08:58
da-nie

Re: Вопросы по С/С++ (СИ)

Добавлено: Пт мар 25, 2022 18:33:15
VladislavS
Ссылки это как раз то о чём человеку изучающему инкремент стоит беспокоиться. :)))

Re: Вопросы по С/С++ (СИ)

Добавлено: Сб мар 26, 2022 09:04:38
da-nie
Я бы ему посоветовал шутливое мнемоническое правило для запоминание инкрементов.
Как понимается конструкция С++ по правилам этого языка?
Надо С увеличить на единицу и вернуть СТАРОЕ (т.е. не увеличенное) значение.
То есть, от улучшения язык лучше не стал. :)

:)

Re: Вопросы по С/С++ (СИ)

Добавлено: Сб мар 26, 2022 13:33:04
ARV
[uquote="da-nie",url="/forum/viewtopic.php?p=4203782#p4203782"]Всё верно.
Однако, с return со скобками и без был прикол с decltype при возврате значения.[/uquote]
из прочитанного по ссылке (простите за каламбур), я понял только вот это:

Код: Выделить всё

4
Да, уж. С++ становится все сложнее и сложнее, понять чужую программу становится все проблематичней (вангую, лет через пять в ответственных конторах писать на нем просто запретят). – 
avp
 30 окт 2016 в 10:39
@avp На мой взгляд это крайне гнеудачное решение Комитета по стандартизации C++. – 
Vlad from Moscow
 30 окт 2016 в 10:41
2
На самом деле, проблема глубже (и это, так сказать, "родовая травма"). Проблема в том, что С++ это как минимум 2 языка (один для программирования на высоком уровне, а второй (включая шаблоны и т.п.) предназначен для создания первого, используя по сути его же синтаксические основы). Результаты этой шизофрении мы и видим. – 
avp
 30 окт 2016 в 10:50 
с чем, в принципе, согласен :)))