>is it valid just to add to make the porting non-destructive? >#ifdef Plan9 >#define void unsigned char >#endif
not really, as a global define. it's legal to write Type *t; t = malloc(sizeof(*t)); and that won't work unless malloc returns a real void* (only void* is compatible with all types of data pointer). it's similar for void* as a formal parameter; it accepts any type of data pointer as an actual parameter, but uchar* will not.