Как правильно объявить указатель на указатель __far? - PullRequest
3 голосов
/ 23 октября 2008

На встроенной цели я использую дальние указатели для доступа к некоторым частям карты памяти.

рядом с указателем (без явного указания __near):

unsigned int *VariableOnePtr;

Указатель на ближний указатель:

unsigned int **VariableOnePtrPtr;

дальний указатель:

unsigned int *__far VariableTwoPtr;

Как правильно объявить указатель на дальний указатель? Этот указатель должен быть дальним указателем?

Ответы [ 3 ]

6 голосов
/ 23 октября 2008

Я полагаю, вы бы сделали это:

unsigned int * __far *VariableThreePtrPtr;

Дальний указатель на дальний указатель будет:

unsigned int * __far * __far VariableFourPtrPtr;
3 голосов
/ 09 декабря 2008

«__ far» является проприетарным, нестандартным расширением вашей платформы, поэтому не может быть никакого общего способа его использования. О том, как правильно его использовать, см. В руководствах производителя компилятора и стандартной библиотеки.

2 голосов
/ 23 октября 2008

Вы также можете использовать typedefs для этого, например

typedef unsigned int *__far VariableTwoPtr_t;
VariableTwoPtr_t* VariableTwoPtrPtr;
...