Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
#1

case struct - C++

13.09.2009, 11:04. Просмотров 1311. Ответов 5
Метки нет (Все метки)

Здравствуйте!

Подскажите как аналогичную структуру сделать в С++?
Delphi
1
2
3
4
5
6
7
type
 MainTyp=record
  case integer of
   1:(I:integer);
   2:(w1,w2:word);
   3:(b1,b2,b3,b4:byte);
 end;
это не предлагать, ибо не правильно.
C++
1
2
3
4
5
6
7
8
9
10
11
typedef unsigned short WORD;
typedef unsigned int DWORD;
typedef unsigned char byte;
typedef struct{
  union
  {
    int i;
    WORD w1,w2;
    byte b1,b2,b3,b4;
  };
}MainTyp;
Добавлено через 24 минуты
ещё вопрос вдогонку.
C++
1
2
3
vector<int> v;
/* ... */
for(int j=0;j<v.size());j++){/* something */}
как быть с варнингом?
warning C4018: '<' : signed/unsigned mismatch
отрубить его или плодить код вида
C++
1
for(int j=0;j<(int)v.size());j++)
или даже
C++
1
int c=(int)v.size(); for(int j=0;j<c);j++)
?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2009, 11:04     case struct
Посмотрите здесь:

C++ Struct{...}
Struct{...} C++
Программа по Struct C++
C++ typedef struct ....
C++ struct (с++)
Struct VS Class C++
C++ Функции в struct
C++ struct
C++ в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени
Использование Struct C++
C++ Struct vedomost
При выборе case 1 всегда черный экран? как правильно указать путь в case C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mustardandrew
Человек
96 / 80 / 3
Регистрация: 16.06.2009
Сообщений: 229
13.09.2009, 11:15     case struct #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main(){
    struct b4{ unsigned char b1,b2,b3,b4; };
    struct w2{ unsigned short w1,w2; };
    
    union UnionMy{
      unsigned int i;
      w2 w;
      b4 b;       
    };
    
    
    cin.get();
    return 0;   
}
Вот примерно так.

Добавлено через 1 минуту
Цитата Сообщение от Adler Посмотреть сообщение
ещё вопрос вдогонку.
Код C++1
2
3 vector<int> v;
/* ... */
for(int j=0;j<v.size());j++){/* something */}
как быть с варнингом?
вот так правильно
C++
1
for(int j=0;j<v.size();j++){/* something */}
Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
13.09.2009, 11:35  [ТС]     case struct #3
DreamWolf
Спасибо! Хорошая идея. Сделал так.
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
// CaseRecord.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
///*
 
typedef unsigned short WORD;
typedef unsigned int DWORD;
typedef unsigned char byte;
 
typedef struct{
  union
  {
    int i;
    struct {WORD w1,w2;};
    struct {byte b1,b2,b3,b4;};
  };
}MainTyp;
//*/
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
  MainTyp V;
  V.i=0;
  V.w1=255;
  V.w2=1;
  cout<<V.i<<endl;
  cin.get();
    return 0;
}
Добавлено через 13 минут
DreamWolf,
вот так правильно
ну правильно так правильно, значит
C++
1
#pragma warrning(diable: 4018)
mustardandrew
Человек
96 / 80 / 3
Регистрация: 16.06.2009
Сообщений: 229
13.09.2009, 11:44     case struct #4
а что ещо ворнинг вискакивает.
Там у тебя била лишняя скоба.
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
13.09.2009, 12:25     case struct #5
Adler,

как быть с варнингом?
warning C4018: '<' : signed/unsigned mismatch
отрубить его или плодить код вида


надо просто использовать соответствующий тип

typedef std::vector<int> V;
V v;

for (V::size_type i=0 ...

а ещё лучше делать тоже самое через итераторы.
Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
13.09.2009, 15:28  [ТС]     case struct #6
Цитата Сообщение от DreamWolf Посмотреть сообщение
Там у тебя била лишняя скоба.
o_O это я тут о печатался три раза, на самом деле её там нету ни раза.

Цитата Сообщение от Rififi Посмотреть сообщение
а ещё лучше делать тоже самое через итераторы.
ясно.
Yandex
Объявления
13.09.2009, 15:28     case struct
Ответ Создать тему
Опции темы

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