On Thu, Sep 20, 2001 at 04:25:45PM -0400, Dan Sugalski wrote:
> At 01:06 PM 9/20/2001 -0700, Robert Spier wrote:
> > Could you explain again why you don't want char* anywhere, and prefer
> > void*?
>
> Because for character data we're not sure char * is right. (Might be
> wchar_t, __int16, __int32, or something else) It's also to shake off the
> "Oh, it's character data! I can use the <string.h> functions!" reaction.
"char" is misnamed in C--it should have been called "byte". If you
have a string of bytes, which you intend to treat as a string of
bytes, then you should use a char* for it. (Well, unsigned char*.)
The question is whether any given chunk of data is going to be treated
as a string of bytes or not. I'm certain that there will be such data
strings somewhere in Parrot; I'm not certain if the type of string
which gets put into an SV will be of this type or not.
- Damien