Типы Java и C++
Недавно у меня возник вопрос о реализации Java в coledatetime, и Chris K сказал, что проблема может заключаться в преобразованиях типов: cpp-float против java-float (или, может быть, cpp-date против java-date. Не типы, но..), Теперь у меня есть несколько вопросов по этому вопросу:
- Есть ли таблица сравнения для типов Java + C++?
- Если преобразование типов является проблемой, в моей ситуации (у меня есть база данных с записями OLEDate, уже созданная с помощью некоторой программы на С ++. Мне нужно читать и записывать в эту базу данных, чтобы совместимость полей OLEDate сохранялась: мой код Java читает правильные даты, и программа на С ++ не зависит от того, что программа Java написала в БД.), что бы вы сделали:
- Используйте COleDateTime, чтобы получить дату с JNI?
- Создать собственную реализацию любой ценой (используя более широкие типы или что-то еще)?
- Есть что-нибудь, я здесь скучаю?
1 ответ
В C++ диапазоны типов могут и действительно различаться от одной реализации (компилятор / архитектура) к другой, поэтому нет стандартных сравнений типов Java-C++, так как нет стандартных размеров типов C++.
Но в большинстве современных архитектур двойники C++ являются стандартными двойниками IEEE 754, как и в Java. Таким образом, хотя код не будет строго переносимым на некоторые редкие архитектуры, он чаще всего будет работать в любых архитектурах x86/x86_64.
В комментариях к предыдущему ответу был задан вопрос, который вы не рассмотрели: что не работает в вашей реализации?