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

Поиск макроса, принимающего строку как параметр - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сравнение двух объектов через конструктор с одним аргументом http://www.cyberforum.ru/cpp-beginners/thread1246060.html
class Int { private: unsigned int integer; public: inline int get_int()const {return integer;} Int () : integer (0){} Int ( int c ) : integer(c){} };
C++ Сравнение класса наследника через конструктор с одним аргументом #include <iostream> using namespace std; //////////////////////////////// class Counter { protected: unsigned int count; public: Counter () : count (0){} Counter ( int c ) : count(c){} http://www.cyberforum.ru/cpp-beginners/thread1246056.html
Узнать позицию символа в строке string C++
Привет, как узнать индекс символа 'l' в строке string ? string s = "Hello";
Что означают эти конструкции? C++
Вот начал изучать cpp , до этого изучал несколько языков, таких как pawn,php и т.д. Вопросы: 1) Что означают такие конструкции как (тип данных)переменная. Типо: int test = 1; cout << (DWORD)test...
C++ Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей http://www.cyberforum.ru/cpp-beginners/thread1246027.html
Задача: создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей. Вернуть адрес наибольшей строки (Стивен Прата - "Язык программирования с++", 8...
C++ Считывание из файла в нужной кодировке Почему при считывание файла выдает кракозябры ? Содержимое файла: i love you char *text; ifstream read; read.open("read.txt"); while(read.eof()) { read >> text; ... подробнее

Показать сообщение отдельно
0x10
2465 / 1637 / 240
Регистрация: 24.11.2012
Сообщений: 4,039
23.08.2014, 14:07
Цитата Сообщение от Izual Посмотреть сообщение
конструкция работает.
Контрпример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cstring>
 
char buf[255]="";
 
#define STR(x) #x
#define SHOW_DEFINE(x) strcmp(STR(x),#x)!=0?strcpy(buf,#x):strcpy(buf,"NOT defined")
 
int main()
{
    SHOW_DEFINE(MY_MACRO);
    std::cout << buf << std::endl;
 
#define MY_MACRO MY_MACRO
 
    SHOW_DEFINE(MY_MACRO);
    std::cout << buf << std::endl;
}
Логика самого макроса странная, я не знаю чего хотел автор и почему писал именно так.
Цитата Сообщение от Izual Посмотреть сообщение
Ну вот мне нужна строка... Почему - потому что нужна строка, извините, по другому не объясню.
Это не объяснение. Могу только предположить, что хочется во время выполнения программы получать информацию о макросах, которые были на момент сборки. По-простому так сделать нельзя, поскольку после препроцессинга уже выполнены все подстановки препроцессора.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru