Preprocessor question
Stephen Vinoski
vinoski at apollo.HP.COM
Fri Apr 19 04:39:00 AEST 1991
In article <AHUTTUNE.91Feb16230548 at silver-surfer.hut.fi> ahuttune at niksula.hut.fi (Ari Juhani Huttunen) writes:
>I would like to do the following or something similar:
>
>#define BLOCK_SIZE 1024
>
>char *message = "The block size is " # BLOCK_SIZE " bytes.";
>
>I need the result: "The block size is 1024 bytes."
>
>I know what I am doing wrong, but HOW should I do it? These alternatives
>are no good:
> - #define BLOCK_SIZE_STRING "1024"
> - char *message = "The block size is 1024 bytes.";
How about:
#define BLOCK_SIZE 1024
#define REALSTR(x) #x
#define STR(x) REALSTR(x)
char *message = "The block size is " STR(BLOCK_SIZE) " bytes.";
-steve
| Steve Vinoski (508)256-0176 x5904 | Internet: vinoski at apollo.hp.com |
| HP Apollo Division, Chelmsford, MA 01824 | UUCP: ...!apollo!vinoski |
| "The price of knowledge is learning how little of it you yourself harbor." |
| - Tom Christiansen |
More information about the Comp.std.c
mailing list