<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p><br>
</p>
<div class="moz-forward-container"><br>
<font size="+2">Even screwed up the attempted correction!</font></div>
<div class="moz-forward-container"><br>
</div>
<div class="moz-forward-container">Should have formed the ch2 values
using bitwise OR instead of addition:</div>
<div class="moz-forward-container"><br>
</div>
<div class="moz-forward-container">Corrected code is:</div>
<br>
<div class="moz-forward-container">#include <stdio.h><br>
<br>
/* program to test for signedness of plain char in C
*/<br>
<br>
/* assumes that all integral types have an even number of bits */
<br>
<br>
static const char diag[2][9] = { "UNSIGNED", "SIGNED" };<br>
static const char two = (char)2;<br>
<br>
int main (void)<br>
{<br>
int ch1 = (char)2;<br>
int ch2 = (char)((ch1 << 2) | two);<br>
<br>
printf("\nPlain char signedness test: ");<br>
<br>
while (ch2 != ch1)<br>
{<br>
ch1 = (char)ch2;<br>
ch2 = (char)((ch1 << 2) | two);<br>
}<br>
<br>
printf ("ch1 = %i, plain char is %s\n", ch1, diag[ (ch1 <
0) ]);<br>
<br>
return 0;<br>
}<br>
<br>
</div>
<div class="moz-forward-container">Just goes to show how you can
mess things up in a language you've been using for decades ... and
why CbyC tooling is your friend. I feel terribly exposed writing C
without decent tools.<br>
</div>
<div class="moz-forward-container"><br>
</div>
<div class="moz-forward-container">Heading for evidently necessary
recaffeination,</div>
<div class="moz-forward-container"><br>
</div>
<div class="moz-forward-container">Olwen</div>
<div class="moz-forward-container"><br>
</div>
</body>
</html>