************************* MASTER CODE *************************************** The name of the first file in this disk's directory identifies the volume, issue number and revision of the disk. The format of this filename is: !CDmvvii.rrr where ! = the '!' character m = C for C Users Journal, W for Windows/DOS Developer's Journal vv = volume ii = issue rrr = revision (001 for initial release, 002 for next update, etc.) The file UPDATE.DOC contains information about any additions or corrections to material on the disk since the original magazine publication. If you have obtained this code from a floppy diskette or from CompuServe, the headings under the column "FILENAME" represent the names of .ZIP files. All files listed under the filename are archived in the .ZIP file. If you have obtained this code from UUNET, the headings under the column "FILENAME" represent the names of subdirectories. All files listed under the "filename" are included in a subdirectory of that name. Keywords: C C++ Embedded Locator Fuzzy Optimization Korn The code listings for the March 1994 issue of The C Users Journal include source for Odd Olsen's symbolic interface for embedded systems, Charles B. Allison's EXE locator for embedded systems, Jack McCauley's fuzzy logic implementation of a torque servo, Randal Kamradt's weight reduction techniques for C++ programs, and Philip Thomas' Predictor class for the UNIX Korn Shell. ************************* FILE DESCRIPTION ********************************** The following files are included in the disk: FILENAME AUTHOR-NAME TITLE PAGE (Zip archive/ subdirectory name) ------------------------------------------------------------------------------- plauger P.J. Plauger Standard C 10 new - listing 1, The header new1.cpp - listing 2, Defines operator new(size_t) delete.cpp - listing 3, Defines operator delete(void *) new2.cpp - listing 4, Defines operator new(size_t, void *) typeinfo - listing 5, The header saks Dan Saks Stepping Up to C++ 87 shape1.h - listing 1, A class hierarchy with virtual cloning functions that have identical return type shape1.cpp - listing 2, A crude application of the shape hierarchy in listing 1 polygon.h - listing 3, Shows functions derived from abstract class polygon shape2.h - listing 4, Shape hierarchy with relaxed return type rules fewer.h - listing 5, Illustrates a derived class whose virtual functions have fewer cv-qualifiers than the functions they override. olsen Odd A. R. Olsen Symbolic Access to Embedded 21 and Controllers Petter H. Heyerdahl parsdef.h - listing 1, Message interpreter definitions and function prototypes pars.c - listing 2, Embedded controller assembler and controller implemented on a PC allison Chuck Allison Code Capsules 101 sysmac.c - listing 1, Prints the pre-defined macros trace.c - listing 3, Illustrates the stringizing operator trace2.c - listing 4, Illustrates the token-pasting operator assert.h - listing 5, An implementation of the assert macro xassert.c - listing 6, The _assert support function surprise.c - listing 7, Preprocessed source with a surprise preproc.c - listing 8, Illustrates macro rescanning results.txt - listing 9, Preprocessed results from listing 8 hello.c - listing 10, A "Hello, world" program thello.c - listing 11, "Hello, World" using trigraphs dhello.c - listing 12, "Hello, World" with C++ digraphs tstr.cpp - listing 13, Tests a C++ string class allison2 Charles B. An Embedded System Program 35 Allison Locator romldr.c - listing 1, The EXE locator program demo.c - listing 2, Sample program that produces segment classes demo.map - listing 3, Map file for sample program startup.asm - listing 4, An example of startup code mccauley Jack J. A Fuzzy-Logic Torque Servo 47 McCauley fuzzy.h - listing 1, Declarations for rule table and member- ship functions fuzzy.c - listing 2, Fuzzy torque control program pugh Kenneth Pugh Q&A 65 rttype1.cpp - listing 1, One way to do run-time type checking rttype2.cpp - listing 2, Demonstrates how virtual functions simplify run-time type checking kamradt Randy Kamradt Weight Reduction Techniques 70 in C++ mempool.h - listing 1, Defines class MemoryPool mempool.cpp - listing 2, Memory pool member functions link.h - listing 3, Defines a linked list for the memory pool manage.h - figure 1, Illustrates good and bad memory management practices profile.txt - figure 2, Illustrates use of profiler to find hidden problems inline.h - figure 3, Illustrates inlining of virtual functions inline2.h - figure 4, Illustrates efficient inlining pcount.h - figure 5, Illustrates pointer counting cpyonwrt.h - figure 6, Illustrates copy on write smartptr.h - figure 7, Implements smart pointers empty.h - figure 8, Illustrates use of a special case for an empty list delay.h - figure 9, Illustrates delayed creation of an object via restricted access lowlev.txt - figure 10, Illustrates use of low-level C strings to improve efficiency thomas Philip Thomas Enhancing the UNIX 83 Shmuel Korn Shell Using Rotenstreich Predictor Techniques predict.cpp - listing 1, Definition of the predictor class letters Letters to We Have Mail 118 Editor allocdma.c - listing 2, Attempts to allocate a real-mode DMA buffer ****************************************************************************** If you have questions regarding to the disk, please call or write us. ----------------------------------------------------------------------------- R&D Publications, Inc. 1601 W. 23rd St. Suite 200 Lawrence, KS 66046 (913) 841-1631 -----------------------------------------------------------------------------