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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Nranddek
Вымогатель припоя
Сообщения: 598
Зарегистрирован: Сб авг 09, 2025 22:08:28

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

Сообщение Nranddek »

#include <string.h>
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение 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 ...) Самое главное - во всей программе - единообразное выражение типов. Все позволяет легко переключаться между кодами для разных контроллеров с течением времени. (частично пользуюсь переводчиком)
Nranddek
Вымогатель припоя
Сообщения: 598
Зарегистрирован: Сб авг 09, 2025 22:08:28

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

Сообщение Nranddek »

veso74, ну, зато на стандартные типы работает подсветка синтаксиса, что визуально удобно. Конечно, unsigned long long long long int уже будет перебор, но unsigned long пока ещё пишу.
Аватара пользователя
muravei_
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Чт май 20, 2021 13:33:05

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

Сообщение muravei_ »

[uquote="Nranddek",url="/forum/viewtopic.php?p=4740929#p4740929"]#include <string.h>[/uquote]
Спасибо, помогло . Ну где тут логика? Ни в жизнь бы не догадался .

Скомпилировалось , теперь будем искать настоящие ошибки! :)
Nranddek
Вымогатель припоя
Сообщения: 598
Зарегистрирован: Сб авг 09, 2025 22:08:28

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

Сообщение Nranddek »

muravei_, просто считается, что программирование, это полноценное, поэтапное и системное обучение. А без него либо догадываться, либо гуглить, либо поиском по файлам. А логика есть: работа со строками - это работа с массивами данных в памяти.
Аватара пользователя
muravei_
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Чт май 20, 2021 13:33:05

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

Сообщение muravei_ »

[uquote="Nranddek",url="/forum/viewtopic.php?p=4741062#p4741062"]А логика есть: работа со строками - это работа с массивами данных в памяти.[/uquote]
Ну да, логика сильно притянутая за уши.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Логика простая: функция memcpy объявлена в strings.h. Очевидно, что его надо заинклюдить.
Аватара пользователя
AlexS4
Друг Кота
Сообщения: 6646
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

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

Сообщение 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
$
petrenko
Друг Кота
Сообщения: 5321
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

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

Сообщение petrenko »

[uquote="veso74",url="/forum/viewtopic.php?p=4740943#p4740943"]... (со временем будет вероятно unsigned long long long long int ...) ..[/uquote]

Hy шутка xopoшая :))
, а вот ежели cypьёзно - кто может подсказать - возможно ли в с# "встроить" дополнительные ( машинно-поддерживаемые ! ) типы данных ?
И , если возможно, то как сие "вкошачить" ?
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Аватара пользователя
linux_rulezz
Вымогатель припоя
Сообщения: 589
Зарегистрирован: Пн сен 15, 2025 08:43:23
Откуда: Маленький СССР посреди шариатской республики

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

Сообщение 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-битную архитектуру. Или обратно (отладил ты, скажем, алгоритм на компе, а потом скопипастил на микроконтроллер).
Windows must die!
Аватара пользователя
muravei_
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Чт май 20, 2021 13:33:05

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

Сообщение muravei_ »

Есть 92 байтовых массива констант разной длины , которые надо по очереди засовывать в функцию.
Как это проще организовать?
Сделать массив указателей?
Хотелось бы с минимумом возни.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

Массив по определению состоит из элементов одинаковой длины. Функции тоже как бы работают с параметрами известной (и одной и той же) длины... Странная у вас постановка задачи. Расшифруйте.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3472
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

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

Сообщение smacorp »

Видимо имеется, ввиду, что один массив с константами одной длины, второй массив другой длины и так далее. Хотели сказать, что массивы просто разные.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Может таки структура поможет?
:roll:
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

muravei_ писал(а):Сделать массив указателей?
Зачем ? Ваши массивы (точнее, их имена) - и есть указатели. Просто передавайте их в функцию, с самой длиной (вторым аргументом). Стандартный ход.
Аватара пользователя
muravei_
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Чт май 20, 2021 13:33:05

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

Сообщение muravei_ »

[uquote="ARV",url="/forum/viewtopic.php?p=4756037#p4756037"]известной (и одной и той же) длины...[/uquote]
Ну, да. Байт -8бит , а в военное время - 12 ! :))
smacorp писал(а):массивы просто разные
Так тоже нельзя - кто-нибудь решит , что строчные или массив дуба, бука ... :)
BOB51 писал(а):Может таки структура поможет?
Возможно. Скорее массив структур.
Аlex писал(а): и есть указатели. Просто передавайте их в функцию
Само собой.
Но как передавать в цикле? Как перебирать имена?

Несколько мыслей:

1. Сделать двумерный массив с указателями и размерами каждого.
2. Если быть уверенным , что массивы в памяти расположены последовательно - передавать указатель на первый и прибавлять к нему длину каждого .
3. Слить все в один массив и каждый раз прибавлять длину .
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

muravei_ писал(а):Но как передавать в цикле? Как перебирать имена?
Ну, об этом в предыдущем посте Вы не сказали ничего. Оставалось только гадать.
По этому поводу у Вас уже есть мысли. Не думаю, что Вам тут что-то новое расскажут. Делайте как Вам удобнее, учитывая концепцию и нюансы алгоритмов.
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

идея: вспомните, как кодируются шрифты с переменной длиной (по точкам) букв, напр. для OLED и TFT - соберите один массив со смещениями и данными. напр.: https://github.com/greiman/SSD1306Ascii ... er19.h#L63

Но информации о применении мало. Подозреваю, следующий вопрос будет о сложностях управления. Приведите пример или фрагмент ваших данных, сузим круг вариантов.
Аватара пользователя
muravei_
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Чт май 20, 2021 13:33:05

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

Сообщение muravei_ »

[uquote="Аlex",url="/forum/viewtopic.php?p=4756193#p4756193"]Ну, об этом в предыдущем посте Вы не сказали ничего.[/uquote]
:shock: А это что ? ... :)
muravei_ писал(а):надо по очереди засовывать в функцию.
Добавлено after 2 minutes 12 seconds:
[uquote="veso74",url="/forum/viewtopic.php?p=4756201#p4756201"]соберите один массив со смещениями и данными.[/uquote]

См.
muravei_ писал(а):3. Слить все в один массив и каждый раз прибавлять длину .
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

muravei_ писал(а): А это что ? ...
надо по очереди засовывать в функцию.
Это :

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

func(arr1);
func(arr2);
func(arr3);
func(arr4);
По-очереди ? Да !
Не было ни слова про циклы и имена.
muravei_ писал(а):См.
Говорю же - ничего Вам тут нового не расскажут.
Вы же прекрасно понимаете, что такое массив, что такое указатели, как с ними работать, .... По этому :
Аlex писал(а):Делайте как Вам удобнее, учитывая концепцию и нюансы алгоритмов.
Если собираетесь адресовать конкретный объект(в Вашем случае - массив) по индексу, то без контейнера не обойтись.
Хотя, кто-нибудь может выборку из кучи объектов сделать и на switch-case :)))
Ответить

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