#c #mingw #borland #типы
Есть кусочек кода программы компилируемой в Borland Turbo C. Там есть такое объявление: huge x[240001]; При попытке скомпилировать эту строку компилятором GCC (MinGW32) происходит ошибка: huge does not name a type. Соответственно вопросы: 1) Что за тип такой huge? Каков sizeof() в байтах? 2) Это структура или что? 3) Где объявлен этот тип? В каких заголовочных файлах? 4) Чем его можно заменить в GCC (MinGW32)? P.S. Желательно точное соответствие замены, т.к. важен размер, порядок байт при считывании/записи массива x[240001], 10 байт пишется в файл fwrite(x,10,240000,ou);.
Ответы
Ответ 1
О какой версии компилятора идет речь? Просто начиная с версии 3.0 компилятор назывался просто Borland C++, без Turbo. Так что я вынужден считать, что речь идет о Turbo C 2.0. Тогда... Тогда это были 16-разрядные программы, которые работали в DOS в реальном режиме работы процессора, так что указатели там состояли из сегмента и смещения... Вобщем, рассказывать долго, почитайте лучше сами - например, тут или тут или где-нибудь еще. Соответственно, у вас просто выделен массив памяти с использованием такого указателя памяти, ну, а пропущенный тип в C всегда воспринимался как int. Так что это должен быть просто int x[240001];. Только учтите, что int тогда представлял собой 16-битное значение. Что до fwrite - то в приведенной у вас записи в файл пишется 240000 раз по 10 байт. Это смущает, потому что такой памяти под DOS просто не было - вся она была ограничена 640КБайтами. Так что, может, поделитесь исходником - выложив его где-то? Просто интересно посмотреть и разобраться, что же это такое программа пытается сделать. "По-моему, так" (с) Пух
Комментариев нет:
Отправить комментарий