#define
От: danclax  
Дата: 28.07.05 22:38
Оценка:
Элементарная ситуация, но решения не нашел.

Как включить ЗНАЧЕНИЕ константы, объявленной с помощью #define, в кавычки. Т.е. чтобы получиось примерно так


#define Stroka Znachenie

char* GetStroka()
{
   return "--- Stroka ---"
}


И функция GetStroka должна возвращать указатель на строку --- Znachenie ---, а не на --- Stroka ---
Что нужно добавить, кто-н подскажет?
Re: #define
От: McSeem2 США http://www.antigrain.com
Дата: 28.07.05 23:31
Оценка: 3 (1)
Здравствуйте, danclax, Вы писали:

D>
D>#define Stroka Znachenie

D>char* GetStroka()
D>{
D>   return "--- Stroka ---"
D>}

D>


D>И функция GetStroka должна возвращать указатель на строку --- Znachenie ---, а не на --- Stroka ---


Так просто не получится. Надо примерно так (с выпендрежем):

#define Kavichki(v) #v

#define Stroka Kavichki(Znachenie)

char* GetStroka()
{
   return "--- " Stroka " ---";
}


Или проще:
#define Stroka "Znachenie"
char* GetStroka()
{
   return "--- " Stroka " ---";
}
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re: #define
От: MaximE Великобритания  
Дата: 29.07.05 08:33
Оценка:
danclax wrote:

> Элементарная ситуация, но решения не нашел.

>
> Как включить ЗНАЧЕНИЕ константы, объявленной с помощью #define, в кавычки. Т.е. чтобы получиось примерно так
>
>
>
> #define Stroka Znachenie
>
> char* GetStroka()
> {
>    return "--- Stroka ---"
> }
>
>

>
> И функция GetStroka должна возвращать указатель на строку --- Znachenie ---, а не на --- Stroka ---
> Что нужно добавить, кто-н подскажет?

#define __STR(x) #x
#define STR(x) __STR(x)

#define Stroka Znachenie

char* GetStroka()
{
     return "--- " STR(Stroka) " ---";
}


--
Maxim Yegorushkin
Posted via RSDN NNTP Server 1.9
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.