Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!wuarchive!hsdndev!cmcl2!adm!smoke!gwyn From: gwyn@smoke.brl.mil (Doug Gwyn) Newsgroups: comp.std.c Subject: Re: Preprocessor question Message-ID: <15232@smoke.brl.mil> Date: 17 Feb 91 20:11:30 GMT References: Organization: U.S. Army Ballistic Research Laboratory, APG, MD. Lines: 16 In article ahuttune@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."; #define STRINGIZE(x) # x #define PSTRINGIZE(x) STRINGIZE(x) ... #define BLOCK_SIZE 1024 ... char message[] = "The block size is " PSTRINGIZE(BLOCK_SIZE) " bytes.";