Derleyici Uyarısı (Düzey 1) C4730
'main' : _m64 ve kayan nokta ifadelerinin karıştırılması yanlış koda neden olabilir
İşlev __m64 ve float
/double
türleri kullanır. MMX ve kayan nokta yazmaçları aynı fiziksel yazmaç alanını paylaştığından (aynı anda kullanılamaz), ve float
/double
türlerinin aynı işlevde kullanılması __m64
veri bozulmasına neden olabilir ve büyük olasılıkla bir özel duruma neden olabilir.
Aynı işlevde türleri ve kayan nokta türlerini güvenli bir şekilde kullanmak __m64
için, türlerden birini kullanan her yönerge _m_empty() (MMX için) veya _m_femms() (3DNow!) iç yönergesi ile ayrılmalıdır.
Aşağıdaki örnek C4730 oluşturur:
// C4730.cpp
// compile with: /W1
// processor: x86
#include "mmintrin.h"
void func(double)
{
}
int main(__m64 a, __m64 b)
{
__m64 m;
double f;
f = 1.0;
m = _m_paddb(a, b);
// uncomment the next line to resolve C4730
// _m_empty();
func(f * 3.0); // C4730
}
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin