быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
1 | ||||||
функция возвращает int, возвращаемые значения определены в макросах, как сразу выводить определённые макросы?12.11.2011, 23:23. Показов 4066. Ответов 55
Метки нет (Все метки)
Друзья! Есть какой-нибудь способ без if-else? Ну то есть вот код:
0
|
12.11.2011, 23:23 | |
Ответы с готовыми решениями:
55
Как функция возвращает значение int? Макросы в эксель!Ребята необходимо разобраться в макросах! Функция (int) возвращает ноль Нестандартные заранее определенные макросы C++. Как посмотреть? |
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
13.11.2011, 10:49 [ТС] | 21 | |||||
Нет не позволю. Извольте ответить на два вопроса:
2) Это макрос?
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
13.11.2011, 10:51 | 22 |
макрос и макроопределение в С/С++ - это одно и то же.
Ты бы лучше полностью описал свою задачу, т.к. то, как ты хочешь в данном случае использовать макросы, выглядит весьма сомнительно
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
13.11.2011, 10:54 [ТС] | 23 |
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
13.11.2011, 10:58 | 24 |
с чего ты это взял? Дай ссылку на пост. Он, если я не ошибаюсь, всего лишь предложил тебе вместо макросов использовать константы
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
13.11.2011, 11:02 [ТС] | 25 | |||||
Ой, прошу прощения, я уж запутался. Вот так надо ставить вопрос:
2) Это именованная константа?
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
13.11.2011, 11:04 | 26 |
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
13.11.2011, 11:08 | 27 | |||||
kravam, пример именованной константы:
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
13.11.2011, 11:10 [ТС] | 28 |
А... а по-моему это и то и другое. Вот здесь написано, что такое именованная константа, мой пример подходит под это определение. Так что разницы между ними нет. А коль скоро так, совет использовать одно вместо другого странен.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
13.11.2011, 11:15 | 29 |
kravam, ты по ссылке ходил? Так все ясно расписано
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
13.11.2011, 11:22 | 30 |
kravam, ещё раз говорю, это Pure C-style. В С++ под именованными константами понимается именно то, о чём вам сказал Nameless One в 27 сообщении этой темы. Или вам неймётся поспорить, не важно даже, о чём?
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||||||||||||
13.11.2011, 11:52 [ТС] | 31 | |||||||||||||||
Ну я не знаю, чистый это С или не чистый. Откроем лучше стандарт С++, недавно принятый, пункт 16.3 И там увидим:
[IMG]file:///C:/DOCUME%7E1/ser/LOCALS%7E1/Temp/moz-screenshot-3.png[/IMG][IMG]file:///C:/DOCUME%7E1/ser/LOCALS%7E1/Temp/moz-screenshot-4.png[/IMG][IMG]file:///C:/DOCUME%7E1/ser/LOCALS%7E1/Temp/moz-screenshot-5.png[/IMG]
...Давать ссыли на подобные сайты это бить ниже пояса, вё равно я их не осилю. Ладно, ваша взяла. Пусть именованные константы вообще лучше макроопределений. Но дело даже не в этом. Как сей факт поможет в решении моего вопроса? Никак. Просто теперь я буду знать, что именованные константы лучше макросов. Рад, очень рад. ...Пока что единственное, что мне удалось напропать:
[IMG]file:///C:/DOCUME%7E1/ser/LOCALS%7E1/Temp/moz-screenshot.png[/IMG][IMG]file:///C:/DOCUME%7E1/ser/LOCALS%7E1/Temp/moz-screenshot-1.png[/IMG][IMG]file:///C:/DOCUME%7E1/ser/LOCALS%7E1/Temp/moz-screenshot-2.png[/IMG] Добавлено через 2 минуты Не по теме: С и С++ мешать это плохо, а "это Pure C-style" вместо "это чистый C-style" так ничё...
0
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
13.11.2011, 12:50 | 32 |
kravam, мне кажется, или вы не разу не использовали, определенные вами макросы? Зачем они тогда?
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
13.11.2011, 12:59 | 33 |
kravam, присоединяюсь к вышеозвученному вопросу, при чем здесь макросы?
И да,
0
|
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
|
||||||
13.11.2011, 13:17 | 34 | |||||
Использовать массивы или мапы. Вот что-то в таком духе.
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|||||||||||||||||||||
13.11.2011, 13:45 [ТС] | 35 | ||||||||||||||||||||
CyBOSSeR, имено, что мне не удалось их использовать. Код притянут за уши, я использую
строки "nol" "odin" "dva" "tri" потому, что они похожи на макросы, НО НЕ МАКРОСЫ. И неиспользоование последних ПРИ ВОЗВРАТЕ ЗНАЧЕНИЯ меня угнетает. ...А вообще можно было вот так сделать:
Не по теме: И вообще вам, ребята необязательно знать зачем мне всё это надо, ибо задача довольно сложна, разбираться вы с ней не будете, а советов, не относящихся к делу, я наслушаюсь, этап пройденый. Я пишу виртуальную ось, щас пишу функцию create_papka (string), котора возвращает значения int, такие:
Щас я на стадии тестирования create_papka (), то есть так:
...А, кстати, в реализации create_papka возврат осуществляется не как return 0 или return 1, а как return EST_ODNOIMONNII_FAIL или return PAPKA_UZHE_EST; Это просто для удобства. Но разве не в это суть макросов? Добавлено через 3 минуты vfs это у меня класс "виртуальная файловая система" vfs_ соответственно это объект этого класса, а create_papka один из методов этого класса ...............................
vD:\\ooooo\\
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||||||||||||
13.11.2011, 13:53 | 36 | |||||||||||||||
kravam, ты просто не понимаешь, как работают макросы. После препроцессорной обработки (которая происходит еще до самой компиляции), из кода
для подобных случаев обычно пишут функции типа таких:
Не по теме: Дикая смесь транслита и английских слов выглядит просто-напросто ужасно
1
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
13.11.2011, 14:05 [ТС] | 37 | |||||
Э нет, макросы тут нужны для удобства. Вот вы просили задание, я написал задание и даже написал что в действительности возвращаются значения ОСМЫСЛЕННЫЕ. Это я повторяю, между прочим:
......................................................................... Мне непонятно: есть какая-нибудь возможность вывести на экран строки, как я хочу или нет? Может, директиву какую препроцессору дать или ещё что-нибудь. Нет так нет, очень жаль, чё могу сказать. Добавлено через 6 минут Так я такую и написал ну или примерно таку. Недостаток в том, что вот сейчас у меня не поределён ещё один макрос, который возвращает значение , допустим , 5. Это если папка просто не создана по неизвестной причине. Так вот, если я этот макрос добавлю собственно в макросы, вот сюда:
Ведть я ещё должен буду залезть в одно место кода, а имено в функцию print_error_description и там что-нибудь кропать! Мне кажется всё понятно, код модернизируется, и надо свести места, куда вставлять изменения к минимуму.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
13.11.2011, 14:06 | 38 |
а в чем тогда смысл функции f?
в таком виде, как ты хочешь - нет, нельзя. Один из вариантов того, как это сделать можно, я показал выше (с x-макросами и enum'ами). Тогда тебе действительно при добавлении нового идентификатора ошибки нужно будет изменить только одно место в коде
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
13.11.2011, 14:11 [ТС] | 39 |
функция f это просто демонстрационная функция. Её смысл- продемонстрировать как я использую макросы вместо чисел. И если "odin"== 1 (ежу понятно, да ведь? Вы же это хотели сказать?), то в реальном задании соответствие между строками и числами неочевидно, следует понимать.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
13.11.2011, 14:19 | 40 | |||||
в любом случае, если у тебя в этой функции
0
|
13.11.2011, 14:19 | |
13.11.2011, 14:19 | |
Помогаю со студенческими работами здесь
40
Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему? Как использовать значения, возвращаемые IEnumerable Как получить возвращаемые значения функцией MessageBox Как преобразовать в QString значения возвращаемые QDomElement? Можно ли вывести сразу 2 значения int из функции через return? Реализуйте статический метод d(int a, int b, int c), который возвращает дискриминант b2-4*a*c квадратного уравнения. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |