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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2013, 15:29   #1
Alendorff
Форумчанин
 
Аватар для Alendorff
 
Регистрация: 04.06.2011
Сообщений: 104
По умолчанию Вывод имени переменной C++

Здравствуйте. Поискал по данной теме: предлагают использовать #define и там какой-то странный код, но мне ни один из способов не подошел. Объясню ситуацию.
Есть структура:
Код:
struct List {
int data;
List* next;
};
Мне для программы нужны два списка. В main'е у меня есть указатели на головы списков и даже на их хвосты.
Код:
List *A;
List *B;
List* rear_A;
List* rear_B;
Но это не так важно.
Я пишу функцию, которая определит: является ли множество А подмножеством В. Вот допустим уже есть два вырожденных случая в ней:
Код:
void subset (List* head_A, List* head_B){
  if (head_A==NULL && head_B!=NULL) cout<<"А подмножество В."<<endl;
  if (head_A!=NULL && head_B==NULL) cout<<"A не является подмножеством В."<<endl;
}
Но я не смог бы применить эту функцию, чтобы выяснить: является ли В подмножеством А, просто переставив head_A и head_B местами при вызове функции.
А не смогу я этого сделать из-за дурацкого вывода на экран. Вот если бы я мог вывести имя переменной, которую мне передавали в функцию - это было бы круто
Если использовать способы, которые мне попадались с #define, то мне выведется соотв. head: 0x19ea010 или что-то вроде этого.

Может быть кто-то реализовывал подобную хрень?
Либо может кто-то мне подскажет как сделать через #define но для конкретно этого случая?

Последний раз редактировалось Alendorff; 04.03.2013 в 15:32.
Alendorff вне форума Ответить с цитированием
Старый 04.03.2013, 15:56   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Вот если бы я мог вывести имя переменной, которую мне передавали в функцию - это было бы круто
Гм. Сущности "имя переменной" не существует в момент работы программы. Теоретически, можно извратиться через оператор препроцессора #:
Код:
#define function(a) _function(a,#a)

void _function(int v, const char* name){
  std::cout << name << " = " << v << std::endl;
}

//...

int a=5, b=7;
function(a);
function(b);
Практически, нормальным решением является то, что функция subset ничего не выводит, а возвращает true либо false. Выводом же занимается вызывающий код (которому известно, какие там были имена).
Abstraction вне форума Ответить с цитированием
Старый 05.03.2013, 06:37   #3
Alendorff
Форумчанин
 
Аватар для Alendorff
 
Регистрация: 04.06.2011
Сообщений: 104
По умолчанию

Да, я в конечном счете именно так и сделал Просто было интересно...
Alendorff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как вставить значение переменной в формулу ActiveCell.FormulaR1C1 = "=SUM(Лист1:Лист3!RC)" вместо имени листов. vneizvecnocty Microsoft Office Excel 3 25.03.2012 19:01
вывод имени файла(исполняемого)в cmd molan Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 24.03.2012 09:36
Вывод содержимого файла в richedit из имени в listbox KingWaR56 Помощь студентам 2 30.03.2011 21:49
Assembler - ввод данных (имени и фамилии) с клавиатуры и вывод на экран МартинИ Помощь студентам 1 25.05.2010 00:40
Динамическое формирование имени переменной... Kvinto Общие вопросы Delphi 9 17.11.2009 17:56