Использование модификаторов типа (near, far, huge) с нормальными переменными в C
Я использовал модификаторы типов (far,near,huge) с нормальными переменными, а не указателями, и обнаружил, что эти модификаторы типов указателей применимы только для глобальной нормальной переменной, но при использовании с переменной, локальной для блока, генерируется ошибка.
int near a,far b,huge c; int main() { int d,e,f; printf("\n address of a=%u ,b=%u ,c=%u ,d=%u ,e=%u ,f=%u",&a,&b,&c,&d,&e,&f); return 0; }
почему это разрешено с глобальной переменной, а не с локальной переменной? Кроме того,что делает переменная, наконец, становится то есть она становится указателем, целым числом с большим диапазоном или совершенно чем-то другим.
Вопрос уже размещен более года на сайте StackOverflow
Что я уже пробовал:
int near a,far b,huge c; int main() { int d,e,f; // int near a,far b,,huge c; // long int near a,far b,huge c; // long long int near a,far b,huge c; //printf("\n size of a=%d ,b=%d ,c=%d ,d=%d ,e=%d ,f=%d",sizeof(a),sizeof(b),sizeof(c),sizeof(d),sizeof(e),sizeof(f)); printf("\n address of a=%u ,b=%u ,c=%u ,d=%u ,e=%u ,f=%u",&a,&b,&c,&d,&e,&f); return 0; }