Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 beta 3/9/83; site vaxine.UUCP Path: utzoo!linus!vaxine!ptw From: ptw@vaxine.UUCP (P. Tucker Withington) Newsgroups: net.lang.c Subject: Casting aspersions... Message-ID: <245@vaxine.UUCP> Date: Mon, 11-Jul-83 10:32:24 EDT Article-I.D.: vaxine.245 Posted: Mon Jul 11 10:32:24 1983 Date-Received: Mon, 11-Jul-83 13:28:40 EDT References: <674@umcp-cs.UUCP> Organization: Automatix Inc., Billerica, MA Lines: 39 Speaking of type casts, can anyone explain the following? char c; int *pi; main() { c = *((char *) pi); c = (char) *pi; On 4.1 generates: movb *_pi,_c cvtbl *_pi,r0 ; Huh? cvtlb r0,_c With MIT cc generates: movl pi,a0 movb a0@,c movl pi,a0 movl a0@,d0 | Looks better movb d0,c Is that the reason for: /* THIS CODE IS VAX DEPENDENT IN HANDLING %l? AND %c */ case 'c': b = *adx; for (i = 24; i >= 0; i -= 8) if (c = (b >> i) & 0x7f) putchar(c, touser); break; ? --Tucker (ptw@vaxine.UUCP)