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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.95
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
#1

функция возвращает int, возвращаемые значения определены в макросах, как сразу выводить определённые макросы? - C++

12.11.2011, 23:23. Просмотров 2519. Ответов 55
Метки нет (Все метки)

Друзья! Есть какой-нибудь способ без if-else? Ну то есть вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
#define odin 1
 
////////////всякий код
 
int f () {retutn 1;};
 
#include <stdio.h>
////////////////всякий код
int main () {
 printf ("%d\n", f());
}
Надо чтобы в консоли вывелось odin. Спасибо, кто откликнется!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2011, 23:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос функция возвращает int, возвращаемые значения определены в макросах, как сразу выводить определённые макросы? (C++):

Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему? - C++
Друзья! Вот код: #include &lt;windows.h&gt; #include &lt;stdio.h&gt; int main (){ PlaySound (&quot;fail.wav&quot;, 0, SND_FILENAME || SND_SYNC); ...

Можно ли вывести сразу 2 значения int из функции через return? - C++
Можно ли вывести сразу 2 значения из функции int через return ? Например функция находит X1 и X2 из квадратного уравнения, и может ли она...

можно как то сравнить возвращаемые значения этими функциями(разнопотоковыми)? функции на разных потоках - C++
можно как то сравнить возвращаемые значения этими функциями? и например если(они равны) {то завершить круг цикла и перейти к следующему}...

Функция atof() возвращает не точное значения - C++
Добрый день подскажите может кто знает есть программа в MFC фрагмент кода void Ce_weightDlg::OnBnClickedButton1() // зважування { ...

Как функция возвращает значение int? - C (СИ)
Доброго времени суток, собственно, как функция возвращает значение int? Создается переменная содержащая значение или сразу выполняется...

Функция (int) возвращает ноль - PHP
Добрый день! Пишу скрипт корзины, столкнулся с таким вопросом. Я делаю изменение кол-ва товара на ajax, что бы без перезагр. и у меня есть...

55
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
12.11.2011, 23:27 #2
Название макросов выводить? Нельзя их выводить. Читайте, что такое макросы.
0
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
12.11.2011, 23:37 #3
C++
1
2
char* names[] = {"null", "odin", "100500"};
cout << names[odin];
можно как-то так попробовать организовать
0
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
12.11.2011, 23:40  [ТС] #4
Так организовать-то и я могу.
Если функция воезвращает 1, т вывести odin
Но это не наш метод, она ведь может возвращать любое int, case копать неохота.
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
12.11.2011, 23:43 #5
Чем вам вариант Mayonez не нравится? Нет никаких case.
C++
1
2
char* names[] = {"null", "odin", "100500"};
cout << names[ f() ];
0
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
13.11.2011, 00:00  [ТС] #6
С макросами удобнее в том сымсле, что они более близки тык скыть конечному пльзователю.
Ну я кропаю класс, я пишу в пояснительной записке: величины такие-то определены в макросах. А тут что я напишу? величины такие-то определены в массиве указателей?
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
13.11.2011, 00:06 #7
Еще раз, читайте что такое макросы. А то вам говоришь, а вам все равно.
0
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
13.11.2011, 00:34  [ТС] #8
Короче, ты не знаешь.
0
CyBOSSeR
Эксперт С++
2305 / 1675 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
13.11.2011, 00:46 #9
Надо чтобы в консоли вывелось odin
C++
1
return "odin";
0
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
13.11.2011, 01:04  [ТС] #10
Очень смешно
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
13.11.2011, 01:18 #11
Ты не знаешь, я не знаю, все не знают! Мир незнаек просто.
0
Bers
Заблокирован
13.11.2011, 02:19 #12
Не знаю, пригодится тебе это или нет. Я не дружу с суржиками, и с си.
И не знаю, как там с этим дело обстоит.

Но вот на с++ можно вот такое замутить:


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#define EndProgramm() return 0
#define VAL(x) #x
#define STR(x) VAL(x)
 
#define Odin 1
 
std::string f1 () { std::string test= VAL(Odin); return test; }
std::string f2 () { std::string test= STR(Odin); return test; }
 
int main()
{
    std::cout<< f1()<<std::endl;
    std::cout<< f2()<<std::endl;
 
 
    EndProgramm();
}
Добавлено через 16 минут
Извиняюсь, я немножко перепутал имена макросов. Наоборот назвать их нужно:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#define EndProgramm() return 0
#define STR(x) #x  //вернёт символьное 
                   //представление аргумента макроса
 
#define VAL(x) STR(x)  //вернет значение 
                         //аргумента макроса
 
#define Odin 1
 
std::string f1 () { std::string test= VAL(Odin); return test; }
std::string f2 () { std::string test= STR(Odin); return test; }
 
int main()
{
    std::cout<< f1()<<std::endl; //вывод 1
    std::cout<< f2()<<std::endl; //вывод Odin
 
 
    EndProgramm();
}
/ps по вечерам реально жосско глючит форум
1
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
13.11.2011, 08:13 #13
kravam, ага, вы "кропаете класс", и юзаете макросы?
Макросы - С-стайл, используйте именованые константы.
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
13.11.2011, 08:53 #14
Тут могут помочь x-макросы и с99 decignated initializers:
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>
 
#define IDENT_TABLE             \
    DEF_IDENT(0, zero)              \
    DEF_IDENT(1, one)               \
    DEF_IDENT(2, two)               \
    DEF_IDENT(3, three)             \
    DEF_IDENT(4, four) 
/* and so on... */
 
#define DEF_IDENT(ID, DESC) DESC = ID,
enum ids 
{
    IDENT_TABLE
};
#undef DEF_IDENT
 
#define DEF_IDENT(ID, DESC) [ID] = #DESC,
const char* ids_repr[] =
{
    IDENT_TABLE
};
#undef DEF_IDENT
 
enum ids foo()
{
    return three;
}
 
int main(void)
{
    printf("%d = %s\n", foo(), ids_repr[foo()]);
    
    exit(zero);
}
Но что-то мне подсказывает, что в данном случае все это ни к чему
0
агерон
268 / 267 / 33
Регистрация: 12.10.2009
Сообщений: 1,067
13.11.2011, 09:41 #15
а потом так прикольно в макросах искать ошибки на этапе компиляции и рунтайма :-D:-D:-D:-D:-D:-D

вопрос что вернет макрос при ниже указанном вызове?

C
1
2
3
#define min(X, Y)  ((X) < (Y) ? (X) : (Y))
 
next = min (x + y, foo (z));
0
13.11.2011, 09:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2011, 09:41
Привет! Вот еще темы с ответами:

Как использовать значения, возвращаемые IEnumerable - C#
Здравствуйте. Ситуация следующая (программа просто для того, что бы попробовать как работать с этой бд): у меня есть класс public...

Реализуйте статический метод d(int a, int b, int c), который возвращает дискриминант b2-4*a*c квадратного уравнения. - Java SE
Ребят, помогите решить задачи какие сможете... 1. Реализуйте статический метод d(int a, int b, int c), который возвращает дискриминант...

Как получить возвращаемые значения функцией MessageBox - C#
MessageBox.Show(&quot;Вы уверены, что хотите выйти?&quot;, &quot;Выход из игры!&quot;, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); Подскажите...

Как преобразовать в QString значения возвращаемые QDomElement? - C++ Qt
Всем доброго времени суток! Собственно имеется структурированный xml, вида: &lt;firstTag attribute1=' ' attribute2=' '&gt; ...


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

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

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