__far and typedef Names

If the array type has been defi ned as a typedef name, as in:

  typedef int ARRAY[10];

  

then a __far parameter declaration is:

  void my_func (ARRAY __far a);

  

The parameter is a __far pointer to the first element of the array. This is equal to:

  void my_func (int *__far a);

  

It is also equal to the following direct declaration:

  void my_func (int a[10] __far);

  

It is not the same as specifying a __far pointer to the array:

  void my_func (ARRAY *__far a);

  

because a has type " __far pointer to ARRAY" instead of " __far pointer to int".