2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: int и double в одном массиве
Сообщение11.07.2018, 17:36 
Заслуженный участник
Аватара пользователя


16/07/14
2010
Москва
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 
Аватара пользователя


07/10/15
1058
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 
Заслуженный участник
Аватара пользователя


02/08/11
4905
Цитата:
Да, действительно, нужно long long int
Действительно нужен, как выше уже упомянули, union.

 Профиль  
                  
 
 Re: int и double в одном массиве
Сообщение11.07.2018, 23:00 
Аватара пользователя


07/10/15
1058
union - это конечно правильное решение, но думаю, на первых порах пойдёт и так. По крайней мере выглядит всё симпатично, и даже пока работает. Хотя, может что и всплывёт со временем.

 Профиль  
                  
 
 Re: int и double в одном массиве
Сообщение12.07.2018, 02:08 
Заслуженный участник
Аватара пользователя


27/04/09
22977
Уфа
Ничего себе «симпатичнее».

 Профиль  
                  
 
 Re: int и double в одном массиве
Сообщение12.07.2018, 02:11 
Аватара пользователя


07/10/15
1058
Ну мне лично нравится - а это самое главное

 Профиль  
                  
 
 Re: int и double в одном массиве
Сообщение12.07.2018, 12:46 
Заслуженный участник
Аватара пользователя


01/08/06
2387
Уфа
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 
Аватара пользователя


07/10/15
1058
worm2 если не менять порядка следования сообщений и прочитать первое сообщение внимательнее, то вопросы отпадут сами собой

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


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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2

Модераторы: Karan, PAV, Toucan, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group