Могу ли я быть уверенным, что преобразование данных всегда преуспевает? Если у меня есть int
, и я использую mmap(2)
, является int
, преобразованным в off_t
и size_t
? Почему все эти разные размеры? И есть ли функция преобразования?C преобразование типа данных
ответ
Я не уверен в использовании функции mmap, которую вы делаете, поскольку mmap возвращает указатель.
Что касается преобразования вы можете в основном конвертировать любой переменной к чему-либо, используя бросок, однако это ваша ответственность, чтобы убедиться, что это будет работать, например:
int i; double d; d = 42.3; i = (int)d; printf("i = %d", i);
Выход будет 42, без литых (int)
некоторые компиляторы, вероятно, будут жаловаться и предупреждать вас о том, что вы потеряете плавучую точность.
- О, почему из всех этих различных размеров, первая вещь
size_t
предназначена для представления размера, так что вы можете сильно думать об этом какunsigned int
, относительно того, почему не использоватьunsigned int
, а не typedef'ed «size_t» , см. этот пост unsigned int vs size_t.
Хорошо, но поскольку я не знаю, как определяется 'off_t', может произойти, что я вставляю значение, которое не вписывается в' off_t'. Предположим, что у меня есть 'size_t', определяемый как 64 бита, и я хочу назначить его' off_t', определенному как 32 бита, что произойдет, если 'size_'t' будет удерживать 33 бита? – Kouros
- 1. Преобразование типа данных C++
- 2. C# преобразование типа
- 3. Преобразование типа данных C в Python
- 4. MSSQL Преобразование типа данных
- 5. Postgres Преобразование типа данных
- 6. преобразование типа в c
- 7. C# Преобразование типа
- 8. C++ Преобразование каскадного типа
- 9. C# преобразование типа перечислений
- 10. Преобразование типа в C++
- 11. C++/C# Преобразование типа совместимости
- 12. преобразование типа c или C++
- 13. Преобразование типа C# в тип массива типа
- 14. Таинственное преобразование типа данных в другую ошибку типа данных
- 15. Преобразование любого типа данных NSString
- 16. Преобразование типа данных в JAVA
- 17. Преобразование данных типа оболочки HBase
- 18. Преобразование типа данных прослушивателя TCP
- 19. Преобразование типа данных столбца Pandas
- 20. Преобразование типа данных запроса доступа
- 21. Преобразование типа данных в Javascript?
- 22. Преобразование типа Nullable в C#?
- 23. Преобразование неявного типа в C#
- 24. C++ неявное преобразование указателя типа
- 25. C++ контейнер типа класса преобразование
- 26. явное/неявное преобразование типа C++
- 27. C# Неявное/Явное преобразование типа
- 28. C# Преобразование типа термического выражения
- 29. C++ автоматического «приведения типа» преобразование
- 30. Преобразование типа данных datetime2 к DateTime типа данных Error
Вы не можете быть уверены, что конверсии всегда будут успешными. Например, преобразования из целочисленных типов в типы с плавающей точкой и от числа с плавающей точкой до целого приводят к неопределенному поведению, если значения не могут быть представлены в новом типе. – EOF
Можете ли вы быть уверены, что конверсии всегда будут успешными? Нет. И в вашем конкретном примере 'off_t' даже не является стандартным C, это POSIX. Хотя 'size_t' и' int' гарантированы как минимум 16 бит. –
Кроме того, по _ «Почему все эти разные размеры?» _, Что вы имеете в виду? Вы имеете в виду, почему разные типы не всех одинакового размера, или почему существуют разные типы, или ...? –