Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dmitriy78781
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 53
#1

Как передать в функцию число и структуру побайтно? - C++

01.03.2012, 11:06. Просмотров 979. Ответов 4
Метки нет (Все метки)

Здравствуйте!!! Нужно написать функцию которая принимает некую структуру и число побайтно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2012, 11:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как передать в функцию число и структуру побайтно? (C++):

Как передать в функцию ссылку на структуру? - C++
Добрый вечер, помогите пожалуйста разобраться. Нужно чтобы функция myProc принимала не структуру, а ссылку на структуру.struct vs { long...

Как передать указатель на структуру в функцию - C++
Подскажите как передать указатель *arr на структуру в функцию2, чтобы в ней использовать уже заполненные массивы: void func1() ...

Как передать в функцию строку и инициализировать ею структуру? - C++
#include <iostream> using namespace std; struct bar { char name; double ves; int kollors; }; void funk(bar& konf, char...

Как передать в функцию указатель на структуру, если эта структура не определена глобально? - C++
Проблема заключается в следующем: предположим есть некая структура, которая была определена внутри функции main. Далее я допустим хочу...

как передать структуру в функцию, чтобы после выполнения функции он(массив в данном случае) вернулся измененным? - C++
const int size = 256; struct MARKER { char mark; } void processing(MARKER struct_m) { //тут какие-то изменения...

Передать структуру в функцию - C++
что не так в моей передаче структуры и массива в функцию? void Sort_date (struct ptoject& proj, int &mas, int num) -функция ...

4
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
01.03.2012, 17:06 #2
Dmitriy78781, Могу предположить, что это можно сделать через void*. В функции преобразовываете указатель на байт (например, unsigned char) и читаете до конца данных. Только саму структуру нужно организовать правильно с выравниванием. Как то так.
0
Nameless One
Эксперт С++
5780 / 3429 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
01.03.2012, 17:27 #3
Цитата Сообщение от Xind Посмотреть сообщение
Могу предположить, что это можно сделать через void*
а почему бы сразу не через unsigned char* ?
0
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
01.03.2012, 17:30 #4
Цитата Сообщение от Nameless One Посмотреть сообщение
а почему бы сразу не через unsigned char* ?
можно подробнее. Если в фун. будет параметр unsigned char* и ему передать указатель на структуру, то будет работать?
Этим не занимался, точно сказать не могу. Можно пример?
0
Nameless One
Эксперт С++
5780 / 3429 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
01.03.2012, 17:39 #5
Цитата Сообщение от Xind Посмотреть сообщение
можно подробнее. Если в фун. будет параметр unsigned char* и ему передать указатель на структуру, то будет работать?
почему бы и нет? Указатель можно свободно скастовать к любому другому типу указателя:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <stdlib.h>
 
void print_bytes(const unsigned char* bytes, size_t size)
{
    size_t i;
 
    printf("%08u: ", size);
    
    for(i = 0; i < size; ++i)
    printf("%03u ", bytes[i]);
    putchar('\n');
}
 
struct s
{
    int i;
    double d;
};
 
int main(void)
{
    int i = 42;
    int j = 512;
    int k = 100500;
 
    struct s s = {900, 415.89};
        
    print_bytes((unsigned char*) &i, sizeof(i));
    print_bytes((unsigned char*) &j, sizeof(j));
    print_bytes((unsigned char*) &k, sizeof(k));
 
    print_bytes((unsigned char*) &s, sizeof(s));
        
    exit(0);
}
2
01.03.2012, 17:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2012, 17:39
Привет! Вот еще темы с ответами:

Не получается передать структуру в функцию - C++
#include &lt;iostream&gt; using namespace std; struct Node { int e; int c; Node *next; };

Передать структуру в функцию другого класса - C++
Добрый день, при выполнении КР возник затор, необходима подсказка. Нужно создать объект класса и инициализировать его конструктором со...

Как передать в функцию заранее неизвестное число параметров? - C++
как передать в функцию &quot;func&quot; разное число параметров? писать для каждого перегрузку, или можно передать array int??

Как правильно написать функцию, которая редактирует структуру по полю Name и возвращает новую, исправленную структуру?.. - C++
Нужно отредактировать структуру по выбору пользователя. Проблема заключается в создании функции. Подскажите, а лучше покажите, как...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru