coerceing pointers

Version 2 of XCSB will not allow you to assign an address or pointer of one type to a pointer of another type.
e.g.
	ubyte	b_arr[10]

	ubyte	*b_ptr

	uint	*i_ptr


	// this is legal
	b_ptr = &b_arr

	// this is illegal
	i_ptr = &b_arr
In some circumstances it is advantagious to be able access a sequence of bytes as an integer. You would do this by telling the compiler to treat a sequence of 2 bytes as an integer.
e.g.
	ubyte	b_arr[10]

	uint	*i_ptr


	i_ptr = (uint *)&b_arr

	*i_ptr = *i_ptr + 1
Forcing the compiler to treat one type of pointer or address as another type is known as coercion (in C it is called casting).

If you only need to access the value and not creat a pointer to it then you can derefernce a coerced address or pointer directly

e.g.
	ubyte	b_arr[10]

	uint	A


	A = *(uint *)&b_arr