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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Когда я лет 20 назад учил С++ по учебнику Страуструпа, так и не понял, чем ссылка отличается от указателя. Лично для меня это - абсолютно одно и то же. И, подозреваю, оно так и есть.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="Reflector",url="/forum/viewtopic.php?p=4181138#p4181138"]Попытался нагуглить где он такое говорил и практически сходу наткнулся на одну статью :)[/uquote]
"Основная проблема всех цитат в интернете в том, что все в них безоговорочно верят." В.И.Ленин.

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4181146#p4181146"]Когда я лет 20 назад учил С++ по учебнику Страуструпа, так и не понял, чем ссылка отличается от указателя.[/uquote]Тогда твоё мнение, конечно же, очень ценно в этом вопросе.
Реклама
SfS
Друг Кота
Сообщения: 19429
Зарегистрирован: Пт янв 12, 2007 11:21:39
Откуда: Томск

Сообщение SfS »

[uquote="Reflector",url="/forum/viewtopic.php?p=4181138#p4181138"][uquote="SfS",url="/forum/viewtopic.php?p=4181104#p4181104"]Простите, а Страуструп тоже врет? Ну что ссылка это эквивалент константного указателя?[/uquote]
Попытался нагуглить где он такое говорил и практически сходу наткнулся на одну статью :)

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

Достаточно традиционный взгляд — это считать ссылку «замаскированным» константным указателем. Но Страуструп и другие авторы, например Стефан Дьюхэрст, считают такую точку зрения неверной и настаивают, что ссылка — это просто псевдоним переменой, на которую она ссылается.
[/uquote]

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

Это разные вещи.

Когда мы говорим о понятии - мы абстрагируемся от реализации.

А вот когда мы говорим о реализации - то тут же всплывает то, что иначе как указателем ссылки не реализуешь. Это может быть простой указатель, умный указатель - неважно. Важно то, что ссылка - это всегда адрес памяти.

Да, компилятор может соптимизировать обращения и вообще выкинуть ненужную ссылку. Но это уже детали. Ненужные переменные он тоже выкидывает.
Друг Кота
Аватара пользователя
Сообщения: 7360
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

Прошу накидать идей как можно сделать это: У меня есть файл с данными - 256 байт. Мне нужно их иметь как-то внутри микроконтроллера. Данные не текстовые, а бинарник с байтами от 0x00 до 0x0F (совсем не печатные).
Среда Code Compose Studio под Windows. Раньше под FreeBSD я бы написал скрипт, который сделал бы мне из этого файла файл с расширением .c но под windows я не умею писать такие скрипты. Может, командный шелл Power такое может, но я этого не умею.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Это надо сделать 1 раз?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18677
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Класс. Всё придумано до нас :)

А я бы открыл файл в Хекс эдиторе, скопировал данные (они копируются в виде "49 6E 6E 6F") и заменил пробелы на пробелы с запятой и "0х" (49, 0х6E, 0х6E, 0х6F).
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Друг Кота
Аватара пользователя
Сообщения: 7360
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

А где в винде взять хекс едитор? Хотя, этот онлайновый тулз мне понравился.
Я тут еще нашел на хабре рецепт интересный https://habr.com/ru/post/545946/ но в синтаксисе ассемблера в CCS я ничего не понимаю, а прямо оно этот текст не ест:

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

    .global text
    .section .rodata.myfiles
text:
    .incbin "C:/Users/wl/Downloads/winmaze080724/mazefiles/APEC88.MAZ"

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


"C:\\ti\\ccs1010\\ccs\\utils\\bin\\gmake" -k -j 4 all -O 
 
Building file: "../text.S"
Invoking: ARM Compiler
"C:/ti/ccs1010/ccs/tools/compiler/ti-cgt-arm_20.2.3.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me -Ooff --opt_for_speed=5 --include_path="C:/ti/ccs1010/ccs/ccs_base/arm/include" --include_path="C:/Users/wl/Documents/TI/msp432_driverlib_3_21_00_05/driverlib/MSP432P4xx" --include_path="C:/ti/ccs1010/ccs/ccs_base/arm/include/CMSIS" --include_path="C:/Users/wl/Documents/repository/RSLK-MAX_Line_Maze/Src/Robotic Maze" --include_path="C:/ti/ccs1010/ccs/tools/compiler/ti-cgt-arm_20.2.3.LTS/include" --advice:power="2,3,5,7,9,10,12" --define=__MSP432P401R__ --define=FRAM_SIZE=(256*1024) --define=COLOR_SENSOR_ON_BACK --define=ccs --define=RSLK_MAX --define=SSD1306 --define=PCA --define=BLINKER_SEGMENT --define=UPSIDEDOWN -g --gcc --diag_warning=225 --diag_wrap=off --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="text.d_raw"  "../text.S"
 
>> Compilation failure
subdir_rules.mk:16: recipe for target 'text.obj' failed
"../text.S", line 1: error #171: expected a declaration
At end of source: warning #12-D: parsing restarts here after previous syntax error
1 error detected in the compilation of "../text.S".
gmake: *** [text.obj] Error 1
gmake: Target 'all' not remade because of errors.
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

uldemir, язык Си знаете? Этого достаточно чтобы написать код, создающий из бинарных данных массив в формате Си.
Если не вариант, какие еще языки знаете?
uldemir писал(а):А где в винде взять хекс едитор?
Скачайте. В сети полно разных HEX редакторов. https://yandex.ru/search/?&text=HEX+%D1 ... 0%BE%D1%80
Друг Кота
Аватара пользователя
Сообщения: 7360
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

У меня место на диске заканчивается, хочется обойтись тем, что есть уже в системе встроенное. Вроде все говорят что в виндовсе есть c#, но как его вызвать и как им пользоваться? cc my_program.c не срабатывает :-). А все обучалки, что я иногда нахрапом пытаюсь в интернете найти описывают программирование, но не просто использование. Или я не умею сформулировать запрос гуглу и получаю все, от курса валют до метода вызова скорой и полиции с мобильного телефона в Санкт-Петербурге, но не то что я хочу. так что прямая ссылка на такую обучалку начального уровня приветствуется.

Еще по поводу рецепта с хабра. А чем отличается .S от .asm? Потому как я вспомнил, что когда-то делал лабу по асму, но там исходник был .asm. Так вот если переобозвать файл как text.asm, то компилятор начинает ругаться иначе и говорит, что самая нужная команда .incbin неизвестна.

Еще есть идея. Собственно, я всё это спрашиваю, чтобы узнать, стоит ли это изучать или нет. Всё не изучишь... так вот, а можно ли как-нибудь использовать для этой задачи "линкерный скрипт" или как его зовут, чтобы содержимое файла разместить куда-нибудь в память. Ну, например, сделать секцию с адресом 0x30000?
Встал на лапы
Аватара пользователя
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

Сообщение U235 »

[uquote="Gudd-Head",url="/forum/viewtopic.php?p=4195300#p4195300"]А я бы открыл файл в Хекс эдиторе, скопировал данные (они копируются в виде "49 6E 6E 6F") и заменил пробелы на пробелы с запятой и "0х" (49, 0х6E, 0х6E, 0х6F).[/uquote]
А я бы вызвал команду xxd. Но это в Linux.
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="uldemir",url="/forum/viewtopic.php?p=4195467#p4195467"]говорят что в виндовсе есть c#, но как его вызвать и как им пользоваться?[/uquote]
LINQPad

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

byte[] file = File.ReadAllBytes("c:\\test.bin");
foreach (byte val in file)
{
	Console.Write($"0x{val:X2}, ");	// 0x48, 0x65, 0x6C, 0x6C, 0x6F....
}
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

Reflector писал(а):LINQPad
uldemir писал(а):У меня место на диске заканчивается, хочется обойтись тем, что есть уже в системе встроенное.
Так что не вариант.
Проще сразу HEX редактор установить.
А если хочется написать, в винде есть встроенные vbs и блокнот.
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Мурик",url="/forum/viewtopic.php?p=4195967#p4195967"]Так что не вариант. Проще сразу HEX редактор установить.[/uquote]
LINQPad - 33МБ, а в меня в качестве hex редактора у меня Ultraedit - 116МБ :)
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

HEX редактор https://www.softpedia.com/get/Programmi ... Edit.shtml
Занимает 7 МБ на диске.
Друг Кота
Аватара пользователя
Сообщения: 7360
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

Э, отбой. Это я круто лоханулся. Оказалось, что та программа, что формирует, показывает и редактирует нужные мне в данный момент файлы (зовётся winmaze - вот описание: https://micromouseonline.com/2008/08/16 ... ze-editor/), уже сама умеет выдавать результат в виде "C declaration".

вот только жаль, что не смог понять, как применить рецепт с хабра - на будущее.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18677
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

пытаюсь найти браузерную IDE для работы с embedded-C (если нативно поддерживает AVR - вообще фантастика). может кто-нибудь посоветовать что-то?

хотел AWS от Amazon (есть бесплатный вариант с хранилищем 25G) - так они хотят карту для проверки, и, само собой, не принимают мои карты... т.е. я даже зарегистрироваться не могу у них в облаке. что-то еще есть альтернативное?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
AAX
Опытный кот
Сообщения: 721
Зарегистрирован: Сб ноя 16, 2013 23:34:34

Сообщение AAX »

Ннада редактор только? В понятие IDE обычно входит компилятор, как минимум. Если нужно таскать проект с платформы на платформу - микрософтовский Code есть на винду-линукс-мак. Это "браузерная IDE", по некоторой иронии ;) т.к. редактор рендерится в web-браузере. И есть микрософтовский сервер: https://vscode.dev Если нужно компилить на сервере каком-то, к которому веб-интерфейс прикручен в качестве удалённого рабочего стола - лучше взять сервер, и удалённый рабочий стол :) Amazon Web Services от Amazon (от кого б ещё им быть, интересно? ;) я так понимаю, Вы собирались использовать как раз для второго варианта? Или у них есть какой-то сервис IDE в облаке? С VSCode есть вариант "пробросить" его с любой машины в инет, например, запустить его на домашнем компе, и подключаться браузером (как в vscode.dev). Но мне чот кажется, что удалённый рабочий стол лучше.
Друг Кота
Аватара пользователя
Сообщения: 15593
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Как бы нонешни "сса(н)кции" на работе с "облачно-забугорными" средствами разработки не отразились...
Надоть таки заранее страховку делать...
:tea:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

[uquote="ARV",url="/forum/viewtopic.php?p=4197104#p4197104"]пытаюсь найти браузерную IDE для работы с embedded-C (если нативно поддерживает AVR - вообще фантастика). может кто-нибудь посоветовать что-то?[/uquote]
Mplab Xpress IDE посмотрите:
mplabxpress.microchip.com
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Ответить

Вернуться в «Разные вопросы по МК»