#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КБайтами. Так что, может, поделитесь исходником - выложив его где-то? Просто интересно посмотреть и разобраться, что же это такое программа пытается сделать. "По-моему, так" (с) Пух
Комментариев нет:
Отправить комментарий