Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
kote17
0 / 0 / 0
Регистрация: 09.01.2016
Сообщений: 4
#1

Как пользоваться структурами? - C++

10.01.2016, 01:08. Просмотров 333. Ответов 10
Метки нет (Все метки)

Ну вот вынес определение структуры в packet.h:
C++
1
2
3
4
5
6
struct packetContainer_t
{
    uint16  packetIdentifer;
    uint32  packetSize;
    int     packetCall;
};
И к примеру у меня есть объявление класса (cinfo.h) где я хочу держать несколько таких структур:
C++
1
2
3
4
5
class CInfo
{
public:
        packetContainer_t packet[20];
}
Если бы нужно было использовать один экземпляр в том же cpp файле я бы ввел в хидере отдельный экземпляр этой структуры с пометкой extern и определил бы в cpp, неужели такое ограничение языка или это я ограниченный?

 Комментарий модератора 

kote17, пожалуйста, прочитайте правила форума и постарайтесь впредь их соблюдать:
П. 4.3. Создавайте темы с осмысленными и понятными названиями - это серьезно повышает шансы, что на Ваш вопрос ответят.
П. 4.7. Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2016, 01:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как пользоваться структурами? (C++):

Подскажите хороший компилятор, как его установить, как им пользоваться?
Подскажите хороший компилятор, как его установить, как им пользоваться??

Как пользоваться отладчиком?
Вот код. В книжке написано: "поставьте точку останова Отладчика на оператор j=i...

Как пользоваться библиотекой?
Есть такая библиотека: /* * hashlib++ - a simple hash library for C++ * ...

Dev-C++ Как пользоваться?
Установил Dev-C++. Не могу понять многое в том числе как графический интерфейс...

Как пользоваться md5 ?
Скачал вот тут Взял от туда md5.h md5.c И ещё пару прицепившихся... ...

Как пользоваться отладчиком?
Дайте ссылку на хороший материал или литературу

10
nonedark2008
1022 / 762 / 210
Регистрация: 28.07.2012
Сообщений: 2,118
10.01.2016, 01:19 #2
Цитата Сообщение от kote17 Посмотреть сообщение
Если бы нужно было использовать один экземпляр
А что, собственно, тебе надо?
0
Горелый
70 / 44 / 17
Регистрация: 20.03.2014
Сообщений: 197
10.01.2016, 01:21 #3
Я что то не улавливаю суть вопроса в чём?
0
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 293
Регистрация: 20.02.2013
Сообщений: 5,225
Записей в блоге: 23
10.01.2016, 01:24 #4
Цитата Сообщение от Горелый Посмотреть сообщение
Я что то не улавливаю суть вопроса в чём?
Видимо, как правильно распределить всё по файлам. Раздельная компиляция.

kote17, я угадал?
0
kote17
0 / 0 / 0
Регистрация: 09.01.2016
Сообщений: 4
10.01.2016, 01:40  [ТС] #5
Я перехватываю функцию отправки пакетов в сторонней программе и вывожу инфу на экран. Всего на экране информация о 20 пакетах, далее инфа просто перезаписывается. Я раньше логгировал в текстовый файл прямо в перехватываемой функции, но сейчас потребовалось вывести инфу на экран плюс всякие доп. параметры (имя, откуда было вызвано и т.д.). Я могу передать копию содержания пакета функции вывода, но тогда инормация о месте пакета в памяти теряется и у меня выводит не то что нужно.
0
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 293
Регистрация: 20.02.2013
Сообщений: 5,225
Записей в блоге: 23
10.01.2016, 01:48 #6
Я не понял, чего требуется. Формулировки задачи так и не услышал внятной.
0
kote17
0 / 0 / 0
Регистрация: 09.01.2016
Сообщений: 4
10.01.2016, 02:00  [ТС] #7
Линкер ругается причем на несколько файлов:
Код
c:\users\q\desktop 3\test\test\cinfo.h(81): error C2146: syntax error : missing ';' before identifier 'packet' (PACKET1.cpp)
1>c:\users\q\desktop 3\test\test\cinfo.h(81): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (PACKET1.cpp)
1>PACKET2.cpp
1>c:\users\q\desktop 3\test\test\cinfo.h(81): error C2146: syntax error : missing ';' before identifier 'packet' (PACKET3.cpp)
1>c:\users\q\desktop 3\test\test\cinfo.h(81): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (PACKET1.cpp)
0
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 293
Регистрация: 20.02.2013
Сообщений: 5,225
Записей в блоге: 23
10.01.2016, 02:01 #8
kote17, телепатов тут нет. Весь код целиком показывай.
0
kote17
0 / 0 / 0
Регистрация: 09.01.2016
Сообщений: 4
10.01.2016, 02:32  [ТС] #9
Создал новый заголовок специально под эту структуру, подключил и заработало.. причем include guards стояли и стоят у меня во всех хидерах, странно.
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7007 / 3300 / 450
Регистрация: 04.12.2011
Сообщений: 9,137
Записей в блоге: 5
10.01.2016, 03:54 #10
Тоже не понял кажись.
//packet.h
C++
1
2
3
4
5
6
7
8
typedef unsigned short uint16;
typedef unsigned int uint32;
struct packetContainer_t
{
    uint16  packetIdentifer;
    uint32  packetSize;
    int     packetCall;
};
//cinfo.h
C++
1
2
3
4
5
class CInfo
{
public:
        packetContainer_t packet[20];
};
//
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include "packet.h"
#include "cinfo.h"//тут из куска для cinfo видно весь packet.h
using namespace std;
int main()
{
CInfo cinfo;
cinfo.packet[0].packetCall=12367;
cinfo.packet[0].packetIdentifer=123;
cinfo.packet[0].packetSize=1024;
cout<<cinfo.packet[0].packetIdentifer<<" "<<cinfo.packet[0].packetCall<<" "<<cinfo.packet[0].packetSize;
cout<<endl;
packetContainer_t stand_alone_pCont={12,34,567};
cout<<stand_alone_pCont.packetCall<<" "<<stand_alone_pCont.packetIdentifer<<" "<<stand_alone_pCont.packetSize;
cout<<endl;
system("pause");
    return 0;    
}
может так?
1
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 293
Регистрация: 20.02.2013
Сообщений: 5,225
Записей в блоге: 23
10.01.2016, 12:48 #11
IGPIGP, гадать, что там у ТС сперва не получилось, а потом вдруг заработало - бесполезно.

Тему закрываю в назидание потомкам.
0
10.01.2016, 12:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2016, 12:48
Привет! Вот еще темы с решениями:

Как пользоваться дебагером?
Как я могу использоваться дебаггер, чтобы понять, как работает данный участок...

Как пользоваться MSDN
Купил себе MSDN но не могу понять как им пользоваться, где приведены примеры...

как правильно пользоваться
Здравствуйте, нашел интересный код для интересной задачи (Удалить комментарии...

Как пользоваться указателями строк?
Задолбался уже с вычислением длины строки: eLen - это длина текста. Мне...


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

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

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