/* CUJ example, Stephen D. Williams, SDW Systems */
#include <stdio.h>
main()
{
char *ptr = "hi there george";
puts(ptr);
/* ((long *)&ptr)++; <---incorrect */
(*((long**)&ptr))++;
puts(ptr);
#define ptr_type(type, prt) (*((type**)&ptr))
puts((char *)++(ptr_type(long,ptr)));
#undef ptr_type /* scoped macro*/
}
/*
output:
hi there george
here george
george
*/