Страница 385 из 386
Re: Вопросы по С/С++ (СИ)
Добавлено: Сб авг 23, 2025 19:33:14
Nranddek
#include <string.h>
Re: Вопросы по С/С++ (СИ)
Добавлено: Сб авг 23, 2025 20:16:31
veso74
Код: Выделить всё
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
Добавляю как автоматом. Есть ли они там, или eще не заявлены - добавляю. Привык к удобствам. uint32_t вижу "издалека". Кроме unsigned long int, которому никак не могу привыкнуть. А если есть: unsigned long long int - заставляет меня смеяться ... (со временем будет вероятно unsigned long long long long int ...) Самое главное - во всей программе - единообразное выражение типов. Все позволяет легко переключаться между кодами для разных контроллеров с течением времени. (частично пользуюсь переводчиком)
Re: Вопросы по С/С++ (СИ)
Добавлено: Сб авг 23, 2025 20:18:08
Nranddek
veso74, ну, зато на стандартные типы работает подсветка синтаксиса, что визуально удобно. Конечно, unsigned long long long long int уже будет перебор, но unsigned long пока ещё пишу.
Re: Вопросы по С/С++ (СИ)
Добавлено: Вс авг 24, 2025 08:18:32
muravei_
[uquote="Nranddek",url="/forum/viewtopic.php?p=4740929#p4740929"]#include <string.h>[/uquote]
Спасибо, помогло . Ну где тут логика? Ни в жизнь бы не догадался .
Скомпилировалось , теперь будем искать настоящие ошибки!

Re: Вопросы по С/С++ (СИ)
Добавлено: Вс авг 24, 2025 10:27:02
Nranddek
muravei_, просто считается, что программирование, это полноценное, поэтапное и системное обучение. А без него либо догадываться, либо гуглить, либо поиском по файлам. А логика есть: работа со строками - это работа с массивами данных в памяти.
Re: Вопросы по С/С++ (СИ)
Добавлено: Вс авг 24, 2025 12:26:06
muravei_
[uquote="Nranddek",url="/forum/viewtopic.php?p=4741062#p4741062"]А логика есть: работа со строками - это работа с массивами данных в памяти.[/uquote]
Ну да, логика сильно притянутая за уши.
Re: Вопросы по С/С++ (СИ)
Добавлено: Вс авг 24, 2025 14:02:44
WiseLord
Логика простая: функция memcpy объявлена в strings.h. Очевидно, что его надо заинклюдить.
Re: Вопросы по С/С++ (СИ)
Добавлено: Вс сен 14, 2025 15:32:43
AlexS4
по этой логике инклюдить надо под 50 хидеров
...ну или хотяб штук по 5 всреднем для каждой архитектуры если кросс.
$ grep -rc -e'memcpy *(' /usr/lib/*/include/ /usr/include/ |grep -v :0
/usr/lib/avr/include/avr/pgmspace.h:2
/usr/lib/avr/include/string.h:4
....
/usr/include/linux/netfilter/xt_sctp.h:1
/usr/include/linux/cec-funcs.h:11
...
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:1
...
/usr/include/wchar.h:1
/usr/include/X11/Xlibint.h:1
...
/usr/include/tcl8.6/tcl-private/compat/string.h:1
...
/usr/include/c++/10/bits/locale_facets.h:4
...
/usr/include/string.h:3
/usr/include/obstack.h:4
$ grep -rc -e'memcpy *(' /usr/lib/*/include/ /usr/include/ |grep -v :0 |wc -l
48
$
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт сен 16, 2025 22:26:17
petrenko
[uquote="veso74",url="/forum/viewtopic.php?p=4740943#p4740943"]... (со временем будет вероятно unsigned long long long long int ...) ..[/uquote]
Hy шутка xopoшая
, а вот ежели cypьёзно - кто может подсказать - возможно ли в с# "встроить" дополнительные ( машинно-поддерживаемые ! ) типы данных ?
И , если возможно, то как сие "вкошачить" ?
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт сен 16, 2025 23:02:36
linux_rulezz
[uquote="muravei_",url="/forum/viewtopic.php?p=4741029#p4741029"]Ну где тут логика?[/uquote]
Т.е. просто набрать в терминале "man memcpy" - не судьба? А там как раз в самом начале пишут, какой header-файл нужен…
Добавлено after 2 minutes 23 seconds:
[uquote="Nranddek",url="/forum/viewtopic.php?p=4740946#p4740946"]зато на стандартные типы работает подсветка синтаксиса[/uquote]
Достаточно настроить подсветку в своем IDE. Но обычно таки современные IDE все типы из stdint.h подсвечивают. А писать "int" или "long" - можно в конце-концов нарваться на косяк. Как нарывались люди при переходе с 32- на 64-битную архитектуру. Или обратно (отладил ты, скажем, алгоритм на компе, а потом скопипастил на микроконтроллер).
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн окт 20, 2025 19:05:53
muravei_
Есть 92 байтовых массива констант разной длины , которые надо по очереди засовывать в функцию.
Как это проще организовать?
Сделать массив указателей?
Хотелось бы с минимумом возни.
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн окт 20, 2025 21:26:27
ARV
Массив по определению состоит из элементов одинаковой длины. Функции тоже как бы работают с параметрами известной (и одной и той же) длины... Странная у вас постановка задачи. Расшифруйте.
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн окт 20, 2025 21:38:46
smacorp
Видимо имеется, ввиду, что один массив с константами одной длины, второй массив другой длины и так далее. Хотели сказать, что массивы просто разные.
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн окт 20, 2025 23:05:38
BOB51
Может таки структура поможет?

Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 21, 2025 00:35:25
Аlex
muravei_ писал(а):Сделать массив указателей?
Зачем ? Ваши массивы (точнее, их имена) - и есть указатели. Просто передавайте их в функцию, с самой длиной (вторым аргументом). Стандартный ход.
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 21, 2025 11:18:09
muravei_
[uquote="ARV",url="/forum/viewtopic.php?p=4756037#p4756037"]известной (и одной и той же) длины...[/uquote]
Ну, да. Байт -8бит , а в военное время - 12 !
smacorp писал(а):массивы просто разные
Так тоже нельзя - кто-нибудь решит , что строчные или массив дуба, бука ...
BOB51 писал(а):Может таки структура поможет?
Возможно. Скорее массив структур.
Аlex писал(а): и есть указатели. Просто передавайте их в функцию
Само собой.
Но как передавать в цикле? Как перебирать имена?
Несколько мыслей:
1. Сделать двумерный массив с указателями и размерами каждого.
2. Если быть уверенным , что массивы в памяти расположены последовательно - передавать указатель на первый и прибавлять к нему длину каждого .
3. Слить все в один массив и каждый раз прибавлять длину .
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 21, 2025 11:31:49
Аlex
muravei_ писал(а):Но как передавать в цикле? Как перебирать имена?
Ну, об этом в предыдущем посте Вы не сказали ничего. Оставалось только гадать.
По этому поводу у Вас уже есть мысли. Не думаю, что Вам тут что-то новое расскажут. Делайте как Вам удобнее, учитывая концепцию и нюансы алгоритмов.
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 21, 2025 11:46:03
veso74
идея: вспомните, как кодируются шрифты с переменной длиной (по точкам) букв, напр. для OLED и TFT - соберите один массив со смещениями и данными. напр.:
https://github.com/greiman/SSD1306Ascii ... er19.h#L63
Но информации о применении мало. Подозреваю, следующий вопрос будет о сложностях управления. Приведите пример или фрагмент ваших данных, сузим круг вариантов.
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 21, 2025 11:55:15
muravei_
[uquote="Аlex",url="/forum/viewtopic.php?p=4756193#p4756193"]Ну, об этом в предыдущем посте Вы не сказали ничего.[/uquote]

А это что ? ...
muravei_ писал(а):надо по очереди засовывать в функцию.
Добавлено after 2 minutes 12 seconds:
[uquote="veso74",url="/forum/viewtopic.php?p=4756201#p4756201"]соберите один массив со смещениями и данными.[/uquote]
См.
muravei_ писал(а):3. Слить все в один массив и каждый раз прибавлять длину .
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт окт 21, 2025 14:38:30
Аlex
muravei_ писал(а): А это что ? ...
надо по очереди засовывать в функцию.
Это :
Код: Выделить всё
func(arr1);
func(arr2);
func(arr3);
func(arr4);
По-очереди ? Да !
Не было ни слова про циклы и имена.
muravei_ писал(а):См.
Говорю же - ничего Вам тут нового не расскажут.
Вы же прекрасно понимаете, что такое массив, что такое указатели, как с ними работать, .... По этому :
Аlex писал(а):Делайте как Вам удобнее, учитывая концепцию и нюансы алгоритмов.
Если собираетесь адресовать конкретный объект(в Вашем случае - массив) по индексу, то без контейнера не обойтись.
Хотя, кто-нибудь может выборку из кучи объектов сделать и на
switch-case 