Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2015, 17:13   #1
Bayern_M
Форумчанин
 
Регистрация: 18.03.2015
Сообщений: 114
По умолчанию Приведение типа структуры к другой структуре

Всем привет! Функция в качестве аргумента использует переменную структуры типа _tip1_, например

Код:
struct 	str1 {				
		int a;			
		char b;		
				}b;
Как подсунуть в функцию структуру другого типа?
например


Код:
struct 	str2 {				
		float a;			
		float b;
		float c;
				}d;
Посоветуйте, как можно использовать приведение типов в этом случае
Bayern_M вне форума Ответить с цитированием
Старый 18.03.2015, 17:23   #2
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

Код:
struct str1
{
  int a;			
  char b;
}a;

struct str2 
{				
    float a;			
	float b;
	float c;
}b = {1., 2., 3.};

void foo(str1* s)
{
    str2* ss = (str2*)s;    
    printf("%f %f %f", ss->a, ss->b, ss->c);
}


int main(void)
{
  foo((str1*)&b);
  return 0;
}
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Старый 18.03.2015, 19:01   #3
Bayern_M
Форумчанин
 
Регистрация: 18.03.2015
Сообщений: 114
По умолчанию

Цитата:
Сообщение от Helloween Посмотреть сообщение
Код:
struct str1
{
  int a;			
  char b;
}a;

struct str2 
{				
    float a;			
	float b;
	float c;
}b = {1., 2., 3.};

void foo(str1* s)
{
    str2* ss = (str2*)s;    
    printf("%f %f %f", ss->a, ss->b, ss->c);
}


int main(void)
{
  foo((str1*)&b);
  return 0;
}
А почему в foo приравниваем str2 s, а не str1 s?
Bayern_M вне форума Ответить с цитированием
Старый 18.03.2015, 19:15   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

А вы свой вопрос прочитайте. Вы ж хотели получить в функции структуру другого типа, чем в параметрах.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приведение типа? Студ Общие вопросы C/C++ 5 11.04.2014 13:38
Не могу понять приведение типа в Turbo Pascal ~Sл@\/яH~ Паскаль, Turbo Pascal, PascalABC.NET 18 10.11.2013 22:34
динамическое приведение типа the_deer_one C# (си шарп) 9 25.08.2012 20:59
Перевод из одного типа в другой. Piro Паскаль, Turbo Pascal, PascalABC.NET 5 10.06.2012 07:30
переход из одного типа в другой Лонли-Локли Общие вопросы Delphi 8 27.08.2009 12:39