At 08:07 PM 7/22/2003 +0100, you wrote: >Are C compilers intelligent enough to convert Print "HELLO ALL" to a data >table and then read that data back from the table or do they convert it to:- Strings in standard C are stored as a null-terminated array of char, so your "HELLO ALL" would take (at least) 10 bytes (9 for the characters plus 1 for the terminating null). It might take more, especially on a >8 bit processor. The parameter to the print routine would be a pointer to const char, in other words, the address in program memory where the string begins. The print routine (eg. cputs ) would just grab a character, terminate if it's a null, otherwise print it, increment the local copy of the pointer, and repeat. So a const string declaration would look like this: const char hello[]= "HELLO ALL"; , which would use 10 bytes of FLASH. It may or may not be padded up to the next even byte. ..the print statement would be something like cputs(hello); The call would be the same number of bytes regardless of the length of the string. You could, and probably would, write it just about the same way in assembly, of course. This is the kind of stuff that C does very well. Best regards, Spehro Pefhany --"it's the network..." "The Journey is the reward" speff@interlog.com Info for manufacturers: http://www.trexon.com Embedded software/hardware/analog Info for designers: http://www.speff.com -- http://www.piclist.com hint: The list server can filter out subtopics (like ads or off topics) for you. See http://www.piclist.com/#topics