что не так с моим int? - PullRequest
       59

что не так с моим int?

2 голосов
/ 01 августа 2011

Я пытался использовать следующую команду:

 __m128i b = _mm_set_epi32 (y, y, x, x);

Где y и x - это целые числа.

Где я запускаю отладчик, я вижу, что b имеет тип: unsigned __int64 [2]

Я хотел, чтобы b было 4 целыми числами по 32 бита каждое (я думаю, что они здесь говорят: http://msdn.microsoft.com/en-us/library/019beekt.aspx)

Знаете ли выЧто с моим кодом?

Спасибо

Ответы [ 2 ]

3 голосов
/ 01 августа 2011

Я не вижу здесь проблемы - 128-битное целое число представлено двумя 64-битными целыми числами, что является самым большим собственным типом вне регистров SSE, которые может обрабатывать 64-битный процессор Intel.

Ваш отладчик, скорее всего, показывает "реальный" тип, а не typedefed или макрос-тип.

0 голосов
/ 01 августа 2011

Typedefs являются псевдонимами, шансы хороши, ваш отладчик показывает вам значение __m128i, к которому привязан В C единственным реальным способом определения нового типа является ключевое слово struct; все другие методы (typedef и т. д.) приводят к псевдонимам типов, которые можно заменить их эквивалентами.

Предполагая, что это правда, есть ли проблема, кроме того, что она отображается иначе, чем вы ожидали?

...