Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/96: Рейтинг темы: голосов - 96, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044

функция со структурой в качестве параметра

02.09.2014, 21:28. Показов 18343. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, а как можно сделать следующее:
есть структура, скажем:
Code
1
2
3
4
5
6
typedef struct my_struct
{
u08 a;
u16 b;
u16 c;
} my_struct;
Есть массив этой структуры.

Хочется следующего:
Code
1
   func (a, b, c);
И в функции я хотел бы разом скинуть в массив (a, b, c) не расписывая по отдельности каждый пункт структуры.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.09.2014, 21:28
Ответы с готовыми решениями:

Как качестве параметра в map использовать класс со структурой?
Как качестве параметра в map использовать класс со структурой содержащей переменные атоmic<int>? #include <iostream> ...

Функция в качестве параметра
Я не знаю, как передать функцию в качестве параметра. При обработке программа никаких ошибок не выдает, но результат печатает неверный. ...

Функция, принимающая в качестве параметра функцию
Навести пример функции, которая в качестве параметра принимает функцию

46
0 / 0 / 0
Регистрация: 22.08.2009
Сообщений: 525
21.09.2014, 09:38
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от dymyurk1978
Разве так писать криминал?:
if (value)
if (!(value))
Я такие примеры видел у людей, которые профессионально занимаются программированием и разработкой электронных устройств.
Криминала никакого здесь нет. Лично я пишу по-разному. Например, проверку некоторой переменной на нуль лучше написать так
Code
1
if (var == 0)
Если же трбуется проверка некоторого логического условия, например разряда в переменной, то я стараюсь писать так
Code
1
if (!(var & FLAG))
Вообще, у каждого свой стиль написания программ и со временем он может меняться в засимости от приобретенного опыта. Или нет?
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
21.09.2014, 09:41
Цитата Сообщение от Bytt
...
Ну и я про то же. Здравствуйте, кстати "или нет" :) Вы один из тех, кто так и показывал проверку разрядов.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
21.09.2014, 10:47
Цитата Сообщение от Myrmyk
Важность вопроса часто недооценивается.

Что бы программа хорошо читалась, ее следует приблизить к естественному языку.
Что характерно, индустрия программирования от этого давно ушла. Естественные языки _очень_ сложны, неоднозначны и контекстно-зависимы. Даже для общения между людьми пытались придумать более внятные языки (читать про Логлан). Для программирования - тем паче. Берётся что-то ближе к математике.

Если интересно, живой язык, близкий к естественному - AppleScript. Желания на нём писать не вызывает от слова "совсем", предпочитаю обходиться sh-скриптами.

Да, ниша для языков, близких к естественным - языки запросов для конечного пользователя. Тут концепция простая: не беда, если получится неправильный результат, лишь бы домохозяйка могла получить его сразу.
0
1 / 1 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
28.09.2014, 16:17
Кстати к вопросу, что профи распарсит любую сложную строку, и не обязательно писать просто, давайте парсить это
Code
1
2
3
if(len <= sizeof(packet.data) && !(!!pData ^ !!len)) {
....
}
У кого сколько времени ушло?
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
28.09.2014, 16:32
itysiy, ну, может, минута, может, меньше - в силу того, что трюк с "!!" сразу вижу.
Вот вы её запишите "проще" - тогда обсудим. Если не писать в несколько if-ов - станет только сложнее.
Хотя нет, можно и действительно упростить:
1. !!x ^ !!y меняется на !x ^ !y или на !x != !y
2. !(!x != !y) заменяется на (!x == !y)
0
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 454
28.09.2014, 16:40
pData указатель небось?

Code
1
2
3
4
5
6
7
если _то_что_длиной len помещается в packet.data
и
pData определен при len>0
или
pData неопределен при len=0
 
то фигачить
как то так?

по-любому это ппц
0
1 / 1 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
28.09.2014, 20:01
2//Mt, ага, вроде правильно. По поводу типов данных надо было мне сразу сказать: const void* pData, const uint8_t len.
Автор кстати позаботился о читателях и приложил таблицу-комментарий для этого.
Code
1
2
3
4
5
6
7
/* Reject NULL data or size larger than paytoods data
* Data  Len  Accept ?
* NULL  0      yes Pymk packet, accept it.
* NULL  #      no  Data is NULL when len defined, reject it.
*  d    0      no  Data is not NULL but len is NULL, reject it.
*  d    #      yes
*/
2oomomstir, а кстати да. Сначала думал что можно как-то так, в лоб
Code
1
2
3
4
5
6
if (sizeof(packet.data) >= len)   {
if ( ( (pData == NULL) && (len == 0) ) ||
( (pData != NULL) && (len != 0) ) ) {
do something();
}
}
А если по вашему, и добавить промежуточных переменных, то как-то так:
Code
1
2
3
4
5
6
7
if (sizeof(packet.data) >= len)   {
bool lengthIsZero = (len == 0);
bool pointerIsNull = (pData == NULL);
if (lengthIsZero == pointerIsNull)   {
doSomething();
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.09.2014, 20:01

Агрегатная функция в качестве выходного параметра процедуры
create or alter procedure TENNIS_PROCEDURE_3 ( FIRMA varchar(30)) returns ( SUMMA double precision) as begin for...

CLR функция с таблицей в качестве входного параметра
Можно ли сделать CLR функцию, на вход которой будет подаваться таблица? Если да, то покажите какой-нибудь простейший пример, где есть таю...

Функция, изменяющая число, переданное ей в качестве параметра
Разработайте функцию Invert, которая возвращает число, полученное записью всех цифр некоторого натурального N в обратном порядке. Т.е.,...

Функция, которая в качестве параметра принимает массив
Ребята, кто опытные, обращаюсь к вам. Хотела этот массив реализовать через функцию и вывести на экран двумя способами: через return и через...

Функция выборки из Dictionary с лямбдой в качестве параметра
Помогите написать функцию выборки из Dictionary&lt;int, T&gt;, в которой в качестве параметра выступает лямбда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
47
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru