2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: int и double в одном массиве
Сообщение11.07.2018, 17:36 
Аватара пользователя
Andrey_Kireew в сообщении #1325996 писал(а):
на прямую пишу значение int как оно есть, в массив double
Тут уже надо рассуждать на том уровне, где "массивов double" нет. malloc возвращает void*, который можно безопасно привести к любому указателю.
Безопасно ли привести его сначала к long*, а потом этот long* к double* - не знаю, скорее всего да (на практике почти наверняка да).
Andrey_Kireew в сообщении #1325999 писал(а):
надо просто коментарий к функции сделать нормальный и всё
Нет, надо написать static_assert(sizeof(double) == sizeof(long), "а вот тут комментарий");

 
 
 
 Re: int и double в одном массиве
Сообщение11.07.2018, 17:44 
mihaild в сообщении #1326002 писал(а):
Нет, надо написать static_assert(sizeof(double) == sizeof(long), "а вот тут комментарий");


Спасибо! это будет вообще отлично!

-- 11.07.2018, 19:16 --

Решил я всё исправить, и для начала дописал
Используется синтаксис C
static_assert(sizeof(double) == sizeof(long int), "in this system the sizes of the long and double types are not identical");
 


появилась ошибка компилятора ... оказалось, что у меня sizeof(long int) == sizeof(float), уж такого я никак не ожидал ...

-- 11.07.2018, 19:24 --

Да, действительно, нужно long long int

 
 
 
 Re: int и double в одном массиве
Сообщение11.07.2018, 20:19 
Цитата:
Да, действительно, нужно long long int
Действительно нужен, как выше уже упомянули, union.

 
 
 
 Re: int и double в одном массиве
Сообщение11.07.2018, 23:00 
union - это конечно правильное решение, но думаю, на первых порах пойдёт и так. По крайней мере выглядит всё симпатично, и даже пока работает. Хотя, может что и всплывёт со временем.

 
 
 
 Re: int и double в одном массиве
Сообщение12.07.2018, 02:08 
Ничего себе «симпатичнее».

 
 
 
 Re: int и double в одном массиве
Сообщение12.07.2018, 02:11 
Ну мне лично нравится - а это самое главное

 
 
 
 Re: int и double в одном массиве
Сообщение12.07.2018, 12:46 
Аватара пользователя
Andrey_Kireew в сообщении #1325961 писал(а):
Размеры long int и double одинаковые.
Andrey_Kireew в сообщении #1326006 писал(а):
оказалось, что у меня sizeof(long int) == sizeof(float), уж такого я никак не ожидал
Andrey_Kireew в сообщении #1325961 писал(а):
В общем то всё работает, но как ??????
(вопросительные знаки — мои).

 
 
 
 Re: int и double в одном массиве
Сообщение12.07.2018, 15:07 
worm2 если не менять порядка следования сообщений и прочитать первое сообщение внимательнее, то вопросы отпадут сами собой

раньше, преобразовывал я их таким путём:
Используется синтаксис C
*(Table+Shift)=double(Val);
 


при этом, разумеется, размеры целой переменной Val не играют роли, хоть она 4 байта, хоть 8, хоть 2.

 
 
 [ Сообщений: 23 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group