From: Groepaz (groepaz_at_gmx.net)
Date: 2003-09-30 22:46:28
On Tuesday 30 September 2003 22:34, Ullrich von Bassewitz wrote:
> 5.2.1 Character sets
[...]
> I would interpret this as if the current behaviour of cc65 is correct. It's
> also easy to remember: Any character or string constant is translated into
> the target character set.
ok, thanx
> If you don't want the translation, don't use character constants. For
> binary data it is not a good idea to use character constants, why not just
> use numbers:
>
> printf("%3d : %3d\n",010,8);
>
> works as expected.
yesyes.... i just have seen that type of stuff pretty often, mostly in old DOS
programs :=)
> Not exactly. Two characters of the source character set may be translated
> into the same character of the execution character set. But you check will
> be ok.
so a character does not necessarily have a unique binary representation (more
than one character may be mapped to the same binary value), right? mmmh... i
feel like this is problematic... a comment in cq243.c says
" Since the value of a character constant is the numerical value
of the character in the machine's character set, there should
be a one-to-one correspondence between characters and values. "
[note: i think this is founded on the fact that 'a' != 'b' != 'c' etc, it may
be true only for printable characters?]
however, cc65 passes the test that follows the comment, so maybe the comment
itself isnt 100% accurate either :=P
> The represenation of character like \n depends on the target platform, so a
> check like ('\n' == '\101') depends on the target platform.
mmmh ok. but they are all supposed to be "non printable" (as in isprint()) ?!
and those *are* supposed to map to unique binary values? or not? :=)
gpz
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2003-09-30 22:51:54 CEST