Я на гитхабе, в ЖЖ
Вопросы по С/С++ (СИ)
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
Когда я лет 20 назад учил С++ по учебнику Страуструпа, так и не понял, чем ссылка отличается от указателя. Лично для меня это - абсолютно одно и то же. И, подозреваю, оно так и есть.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Реклама
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="Reflector",url="/forum/viewtopic.php?p=4181138#p4181138"]Попытался нагуглить где он такое говорил и практически сходу наткнулся на одну статью
[/uquote]
"Основная проблема всех цитат в интернете в том, что все в них безоговорочно верят." В.И.Ленин.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4181146#p4181146"]Когда я лет 20 назад учил С++ по учебнику Страуструпа, так и не понял, чем ссылка отличается от указателя.[/uquote]Тогда твоё мнение, конечно же, очень ценно в этом вопросе.
"Основная проблема всех цитат в интернете в том, что все в них безоговорочно верят." В.И.Ленин.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4181146#p4181146"]Когда я лет 20 назад учил С++ по учебнику Страуструпа, так и не понял, чем ссылка отличается от указателя.[/uquote]Тогда твоё мнение, конечно же, очень ценно в этом вопросе.
[uquote="Reflector",url="/forum/viewtopic.php?p=4181138#p4181138"][uquote="SfS",url="/forum/viewtopic.php?p=4181104#p4181104"]Простите, а Страуструп тоже врет? Ну что ссылка это эквивалент константного указателя?[/uquote]
Попытался нагуглить где он такое говорил и практически сходу наткнулся на одну статью
[/uquote]
Это никак не противоречит данной цитате:
Это разные вещи.
Когда мы говорим о понятии - мы абстрагируемся от реализации.
А вот когда мы говорим о реализации - то тут же всплывает то, что иначе как указателем ссылки не реализуешь. Это может быть простой указатель, умный указатель - неважно. Важно то, что ссылка - это всегда адрес памяти.
Да, компилятор может соптимизировать обращения и вообще выкинуть ненужную ссылку. Но это уже детали. Ненужные переменные он тоже выкидывает.
Попытался нагуглить где он такое говорил и практически сходу наткнулся на одну статью
Код: Выделить всё
Достаточно традиционный взгляд — это считать ссылку «замаскированным» константным указателем. Но Страуструп и другие авторы, например Стефан Дьюхэрст, считают такую точку зрения неверной и настаивают, что ссылка — это просто псевдоним переменой, на которую она ссылается.Это никак не противоречит данной цитате:
В первом случае речь идёт о понятии ссылки. Во втором - о её реализации в языке средствами компилятора.Очевидной реализацией ссылки является (константный) указатель, при каждом использовании которого происходит разыменование.
....
В некоторых случаях компилятор может оптимизировать ссылку таким образом, что во время исполнения вообще не будет существовать объекта, представляющего ссылку.
Это разные вещи.
Когда мы говорим о понятии - мы абстрагируемся от реализации.
А вот когда мы говорим о реализации - то тут же всплывает то, что иначе как указателем ссылки не реализуешь. Это может быть простой указатель, умный указатель - неважно. Важно то, что ссылка - это всегда адрес памяти.
Да, компилятор может соптимизировать обращения и вообще выкинуть ненужную ссылку. Но это уже детали. Ненужные переменные он тоже выкидывает.
Прошу накидать идей как можно сделать это: У меня есть файл с данными - 256 байт. Мне нужно их иметь как-то внутри микроконтроллера. Данные не текстовые, а бинарник с байтами от 0x00 до 0x0F (совсем не печатные).
Среда Code Compose Studio под Windows. Раньше под FreeBSD я бы написал скрипт, который сделал бы мне из этого файла файл с расширением .c но под windows я не умею писать такие скрипты. Может, командный шелл Power такое может, но я этого не умею.
Среда Code Compose Studio под Windows. Раньше под FreeBSD я бы написал скрипт, который сделал бы мне из этого файла файл с расширением .c но под windows я не умею писать такие скрипты. Может, командный шелл Power такое может, но я этого не умею.
Это надо сделать 1 раз?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Реклама
https://notisrac.github.io/FileToCArray/ вам поможет
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Класс. Всё придумано до нас
А я бы открыл файл в Хекс эдиторе, скопировал данные (они копируются в виде "49 6E 6E 6F") и заменил пробелы на пробелы с запятой и "0х" (49, 0х6E, 0х6E, 0х6F).
А я бы открыл файл в Хекс эдиторе, скопировал данные (они копируются в виде "49 6E 6E 6F") и заменил пробелы на пробелы с запятой и "0х" (49, 0х6E, 0х6E, 0х6F).
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
А где в винде взять хекс едитор? Хотя, этот онлайновый тулз мне понравился.
Я тут еще нашел на хабре рецепт интересный https://habr.com/ru/post/545946/ но в синтаксисе ассемблера в CCS я ничего не понимаю, а прямо оно этот текст не ест:
Я тут еще нашел на хабре рецепт интересный 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, язык Си знаете? Этого достаточно чтобы написать код, создающий из бинарных данных массив в формате Си.
Если не вариант, какие еще языки знаете?
Если не вариант, какие еще языки знаете?
Скачайте. В сети полно разных HEX редакторов. https://yandex.ru/search/?&text=HEX+%D1 ... 0%BE%D1%80uldemir писал(а):А где в винде взять хекс едитор?
У меня место на диске заканчивается, хочется обойтись тем, что есть уже в системе встроенное. Вроде все говорят что в виндовсе есть c#, но как его вызвать и как им пользоваться? cc my_program.c не срабатывает :-). А все обучалки, что я иногда нахрапом пытаюсь в интернете найти описывают программирование, но не просто использование. Или я не умею сформулировать запрос гуглу и получаю все, от курса валют до метода вызова скорой и полиции с мобильного телефона в Санкт-Петербурге, но не то что я хочу. так что прямая ссылка на такую обучалку начального уровня приветствуется.
Еще по поводу рецепта с хабра. А чем отличается .S от .asm? Потому как я вспомнил, что когда-то делал лабу по асму, но там исходник был .asm. Так вот если переобозвать файл как text.asm, то компилятор начинает ругаться иначе и говорит, что самая нужная команда .incbin неизвестна.
Еще есть идея. Собственно, я всё это спрашиваю, чтобы узнать, стоит ли это изучать или нет. Всё не изучишь... так вот, а можно ли как-нибудь использовать для этой задачи "линкерный скрипт" или как его зовут, чтобы содержимое файла разместить куда-нибудь в память. Ну, например, сделать секцию с адресом 0x30000?
Еще по поводу рецепта с хабра. А чем отличается .S от .asm? Потому как я вспомнил, что когда-то делал лабу по асму, но там исходник был .asm. Так вот если переобозвать файл как text.asm, то компилятор начинает ругаться иначе и говорит, что самая нужная команда .incbin неизвестна.
Еще есть идея. Собственно, я всё это спрашиваю, чтобы узнать, стоит ли это изучать или нет. Всё не изучишь... так вот, а можно ли как-нибудь использовать для этой задачи "линкерный скрипт" или как его зовут, чтобы содержимое файла разместить куда-нибудь в память. Ну, например, сделать секцию с адресом 0x30000?
[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.
А я бы вызвал команду xxd. Но это в Linux.
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="uldemir",url="/forum/viewtopic.php?p=4195467#p4195467"]говорят что в виндовсе есть c#, но как его вызвать и как им пользоваться?[/uquote]
LINQPad
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
[uquote="Мурик",url="/forum/viewtopic.php?p=4195967#p4195967"]Так что не вариант. Проще сразу HEX редактор установить.[/uquote]
LINQPad - 33МБ, а в меня в качестве hex редактора у меня Ultraedit - 116МБ
LINQPad - 33МБ, а в меня в качестве hex редактора у меня Ultraedit - 116МБ
- Сообщения: 3385
- Зарегистрирован: Пн окт 11, 2010 19:00:08
HEX редактор https://www.softpedia.com/get/Programmi ... Edit.shtml
Занимает 7 МБ на диске.
Занимает 7 МБ на диске.
Э, отбой. Это я круто лоханулся. Оказалось, что та программа, что формирует, показывает и редактирует нужные мне в данный момент файлы (зовётся winmaze - вот описание: https://micromouseonline.com/2008/08/16 ... ze-editor/), уже сама умеет выдавать результат в виде "C declaration".
вот только жаль, что не смог понять, как применить рецепт с хабра - на будущее.
вот только жаль, что не смог понять, как применить рецепт с хабра - на будущее.
пытаюсь найти браузерную IDE для работы с embedded-C (если нативно поддерживает AVR - вообще фантастика). может кто-нибудь посоветовать что-то?
хотел AWS от Amazon (есть бесплатный вариант с хранилищем 25G) - так они хотят карту для проверки, и, само собой, не принимают мои карты... т.е. я даже зарегистрироваться не могу у них в облаке. что-то еще есть альтернативное?
хотел AWS от Amazon (есть бесплатный вариант с хранилищем 25G) - так они хотят карту для проверки, и, само собой, не принимают мои карты... т.е. я даже зарегистрироваться не могу у них в облаке. что-то еще есть альтернативное?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 721
- Зарегистрирован: Сб ноя 16, 2013 23:34:34
Ннада редактор только? В понятие IDE обычно входит компилятор, как минимум. Если нужно таскать проект с платформы на платформу - микрософтовский Code есть на винду-линукс-мак. Это "браузерная IDE", по некоторой иронии
т.к. редактор рендерится в web-браузере. И есть микрософтовский сервер: https://vscode.dev Если нужно компилить на сервере каком-то, к которому веб-интерфейс прикручен в качестве удалённого рабочего стола - лучше взять сервер, и удалённый рабочий стол
Amazon Web Services от Amazon (от кого б ещё им быть, интересно?
я так понимаю, Вы собирались использовать как раз для второго варианта? Или у них есть какой-то сервис IDE в облаке? С VSCode есть вариант "пробросить" его с любой машины в инет, например, запустить его на домашнем компе, и подключаться браузером (как в vscode.dev). Но мне чот кажется, что удалённый рабочий стол лучше.
Как бы нонешни "сса(н)кции" на работе с "облачно-забугорными" средствами разработки не отразились...
Надоть таки заранее страховку делать...

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


