From: Radical NetSurfer Newsgroups: comp.os.msdos.djgpp Subject: Re: BAD strupr, BAD getw Date: Fri, 25 Aug 2000 21:07:16 -0400 Message-ID: References: <2mncqsos70c6u5losbrrlrq9qq2esrm9t0 AT 4ax DOT com> X-Newsreader: Forte Agent 1.8/32.548 X-No-Archive: yes MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit NNTP-Posting-Host: 216.202.134.232 X-Original-NNTP-Posting-Host: 216.202.134.232 X-Trace: 25 Aug 2000 21:10:13 -0400, 216.202.134.232 Lines: 93 X-Original-NNTP-Posting-Host: 64.31.79.51 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com /Begin RadSurfer Reply/ OK! Enough dancing with strangers, lets get down to being pardners! :) I'd like to know your favorite books on this subject; noteworthy magazaine articles, whatever you might wish to share. Thanks. QUESTION: If one wanted to know the PROPER terminology for x-bit-sized quantities, WHERE would they look, and WHAT would they find? SUCH THAT one could write a SINGLE program statement and have it properly interpreted (at least on some common ground level) as expected? As in my previous message: NIBBLE 4 bits Example: 1 single BCD Alternative/Universal 4-Bit Term is: __________________________ BYTE 8 bits Example: "typical single character" Depending on Platform: WORD/2, WORD/4, etc. (sheesh!) Alternative/Universal 8-BitTerm is: ___________________________ "SHORT" 16 bits Example: In some platforms (WORD/2) Alternative: pc16WORD, SHORT, "HALF_WORD" Universal 16-Bit Term is: ________________________ WORD 32 Bits Example: Typically 16, Alternatively 32. Universal 32 Bit Term: ________________ The ques HERE, at this point should be OBVIOUS: If we define a WORD as 32 bits, what _TERMINOLOGY_ is used to define a 16-bit value (this I've never seen explained), "HALF_WORD", and "SHORT" are contrivinces for convenience sake. DWORD 2xWORD Example: Alternatives/Universal 64-Bit Term: Alternative/Universal 2xWORD Term: At this point, things really get quite icky indeed :( (We never got into discussing what Terminology is used to define specific BIT_FIELD's; and yes, they do have specific names; and its useful for them to even have names.) Thank you, industry people, for making it all so very clear to us all. /End RadSurfer Reply/ ---------------------------------------------------------------------------------------------------- Eli Zaretskii wrote: > I don't see any problem here: simply put the result of getw into a > short variable, and you are done. getw *does* read only 16 bits from > the file, it just returns it in an int, that's all. But the upper > bits of that int are not used (except for sign-extension, for negative > values). So you *do* get a short, as you should. This is wrong: getw() reads 32 bits. This is what it does in Borland C++ 5.5 as well, so it's clearly not a mistake. Here's the source (which for some reason is in src\libc\ansi\stdio): #include #include int getw(FILE *f) { int i; char *p; int w; p = (char *)&w; for (i=sizeof(int); --i>=0;) *p++ = getc(f); if (feof(f)) return EOF; return w; } --------------------------------------------------------------------------------------------------- /* RadSurfer's initial thoughts: Ah, Mr. Wizard, sir, has it not been mentioned already, no one has defined these terms "universally" yet? for whatever rediculous and obscure reason that may be; humans tend to take certain areas of disciplines and simply ignore the obvious need to consolidate things. (they seem to have much more fun fighting over themselves about the issues in question; rather than organizing them; (flux)) */ Email is welcomed (even yours): radsmail AT juno DOT com http://members.tripod.com/~RadSurfer/