Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
1

Что будет выведено на экран?

22.01.2015, 14:59. Показов 1336. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здравствуйте уважаемые программисты, вопрос следующий.

что будет выведено на экран?

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
#define A(a) # a //что такое символ # ?
#define B(a,b)   A( a ## b ## c)
 
int main ( )
{
 
   printf("%s", B(foo,bar) ) ;
   return 0 ;
 
}
просьба объяснить или послать почитать чтобы осознать что вообще тут происходит. Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2015, 14:59
Ответы с готовыми решениями:

Что будет выведено на экран?
strcpy(s, &quot;hello&quot;); printf(&quot;%d&quot;, strlen(s));

что будет выведено на экран
7)Баллов: 1 Что будет выведено на экран в результате работы следующего программного фрагмента:...

Что будет выведено на экран?
Увидел только что такую вот интересную задачку на одном форуме #include &lt;iostream&gt; struct aaa...

Что будет выведено на экран
Дано описание переменной перечислимого типа: enum students {Aalov, Balov=0, Valov=5, Galov,...

4
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,520
22.01.2015, 15:57 2
Лучший ответ Сообщение было отмечено ValeryS как решение

Решение

Цитата Сообщение от bazelbodayFaron Посмотреть сообщение
//что такое символ #
Оператор преобразования в строку (#)
https://msdn.microsoft.com/ru-... a913x.aspx
## Оператор вставки токена (##)
https://msdn.microsoft.com/ru-... wwt6y.aspx
соответственно
макрос
Цитата Сообщение от bazelbodayFaron Посмотреть сообщение
#define B(a,b) A( a ## b ## c)
превратит строчку
B(foo,bar) в A(foobarc)
а макрос
Цитата Сообщение от bazelbodayFaron Посмотреть сообщение
#define A(a) # a
foobarc в "foobarc"
на экран выведется foobarc
по моему так
3
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
22.01.2015, 16:18  [ТС] 3
а не foobar ?
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,520
22.01.2015, 16:24 4
Лучший ответ Сообщение было отмечено bazelbodayFaron как решение

Решение

Цитата Сообщение от bazelbodayFaron Посмотреть сообщение
а не foobar
я тоже так подумал сначала
но в
Цитата Сообщение от bazelbodayFaron Посмотреть сообщение
#define B(a,b) A( a ## b ## c)
есть c которая нигде не определена соответственно она должна прилепится к foobar

Добавлено через 1 минуту
проверка в Qt показала, что я прав
foobarc
1
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 339
22.01.2015, 16:24  [ТС] 5
Спасибо за подробный ответ!
0
22.01.2015, 16:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2015, 16:24
Помогаю со студенческими работами здесь

Что будет выведено на экран по данным указателям и ссылкам?
Привет! Все никак до конца не могу понять указатели и ссылки. #include &lt;stdlib.h&gt; #include...

Что будет выведено на экран при выполнении следующей программы
Что будет выведено на экран при выполнении следующей программы при n = 196, m = 649, k = 255 ? ...

Что будет выведено на экран в результате выполнения приведенного фрагмента кода?
Что будет выведено на экран в результате выполнения приведенного фрагмента кода? int n = 1; ...

Что будет выведено на экран при выполнении следующего фрагмента программы
Помогите с заданием пожалуйстааа В программе выполнены следующие описания: class A { protected: ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru