The POSIX manpage just says that wctrans_t should be "a scalar type that can hold values which represent locale-specific character mappings", and doing switch statements with ints is much more pleasant than with pointers.