?? readme
字號:
This collection of data structures is maintained byKaz Kylheku <kaz@ashi.footprints.net>INSTRUCTIONSSimply add the necessary .c and .h files to your project. Include theappropriate .h file in any translation unit that interfaces with one or more ofthe kazlib modules. Then compile and link the modules together with your program.To use kazlib in a C++ project, don't compile them with a C++ compiler.Compile with a C compiler, and include the header files inyour C++ translation units. Then link together the translated C and C++.As of release 1.2, the header files should work with C++.IMPORTANT NOTES1. Self checksThe modules in this collection perform extensive self-checks, some ofwhich make the performance really poor (by actually raising the overallasymptotic complexity of an operation, for example from O(log N) to O(N). Theinstrumentation assertions can be disabled by compiling with the NDEBUG macrodefined.You can check that your project does not violate the principles ofimplementation hiding in connection with its use of the kazlib modules. Thisis accomplished by defining the macro KAZLIB_OPAQUE_DEBUG at the beginning ofany translation unit which includes the kazlib header files. Note thatwhereas this will detect violations, it will not result in a translationthat can be linked against the kazlib. When you are done checking, turnoff KAZLIB_OPAQUE_DEBUG and recompile. If your compiler has a special ``check only''mode which enables it to perform syntax and type checking without doingan actual translation (similar to lint), it may be a time-saving idea touse it in conjunction with KAZLIB_OPAQUE_DEBUG.2. Macros with side effectsSome of the kazlib header files define macros that evaluate their argumentsmore than once. This means that if expressions with side effects are passedto these macros, undesirable and undefined behavior will happen. There issupport in Kazlib for catching these kinds of bugs: compile withKAZLIB_SIDEEFFECT_DEBUG, and add the except.c and sfx.c modules to yourobject. The macros will now parse their expressions at run time to diagnosethe presence of side effects and function calls. It's easy to add this supportto your own code!3. Thread supportPOSIX thread support is enabled by predefining KAZLIB_POSIX_THREADS. Currentlyonly the exception-handling module has any need for this. When compiled thatway, it provides thread-safe exception handling. Threads can independentlythrow exceptions and each thread can install its own specific catcherfor unhandled exceptions. Moreover, each thread can register its ownmemory allocator functions.Note: this variant of the code also depends on the ability to cast between void* and function pointers, which is a common language extension.4. CVS identificationThe source files contain declarations of a static char array variable calledrcsid. This contains an expansion of the CVS identification of each module,making it possible to determine the ``bill of materials'' that went into anexecutable build. I have now wrapped the declarations of these rcsid[] arraysso they are conditional on KAZLIB_RCSID being defined. For many users, theseare just a waste of space.$Id: README,v 1.13 1999/11/13 10:16:25 kaz Exp $$Name: kazlib_1_20 $
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -