Dec 25, 2010 01:45
Читаем документацию Delphi по целым типам. Integer и cardinal - это «просто целые типы, наиболее быстрые на данной платформе», в то время как остальные (shortint, smallint, longint, int64) - числа фиксированной длины. Тогда почему при автоматической конвертации Delphi → Builder паскалевское integer превращается в int, а не в ptrdiff_t?
Впрочем, причина проста. Это сейчас, в 2010-м, разработчики Viva64 просветили нас всех, насколько важна тонкая разница между signed int и ptrdiff_t. Десять лет назад, когда выпускались первые версии C++ Builder'а, на всё это было начхать, а планка в 2 гигабайта даже не маячила на горизонте. Вот и нашёлся индус, плохо читавший спецификацию и потому спутавший то и другое.
линч,
tembarcadero.create,
Си,
x64,
мысли