I'm coming at this as a freeware author of programs for which full source code is available in addition to the executables, and which must compile with as many compilers as possible on as many platforms as possible. Yet they are not only very portable but also extremely powerful. Predefined macros can identify the operating system, compiler, compiler version, hardware and memory model, among other things. As an aid in creating portable code these might be used to conditionally include certain header files whose names differ among various compilers, or to set buffer sizes based on the memory model or OS version.
Predefined macros are also useful for debugging portable code.
Second are the old APIs which have been dropped or which are expected to be dropped in Workplace OS, such as the Kbd , Mou and Vio functions. Here's an example where not only were parameters added, but the order of parameters was changed. Finally, here's a case where the size of a variable changed, in this case a struct. Click here to return to Greg's home page . Click here to return to Greg's table of contents .