FIX: "Jika" kondisi tidak bekerja dengan benar ketika Anda menjalankan aplikasi Visual C++ yang dikembangkan di Visual Studio 2010 SP1

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 2719783
Perbesar semua | Perkecil semua

Pada Halaman ini

Gejala

Pertimbangkan skenario berikut:
  • Anda menggunakan Microsoft Visual Studio 2010 Service Pack 1 (SP1) untuk mengembangkan aplikasi Visual C++.
  • Kode sumber aplikasi memenuhi kondisi berikut:
    • Kode sumber berisi pernyataan jika dalam lingkaran bersarang.
    • JIKA kondisi berisi cek yang menentukan apakah variabel integer ditandatangani negatif dan juga cek yang menentukan apakah variabel integer ditandatangani lebih besar dari nomor lain.
    • Kode yang berada di luar jika kondisi memiliki fungsi linear yang menggunakan variabel ditandatangani.
  • Anda mengkompilasi aplikasi dengan menggunakan Visual Studio 2010 atau prompt perintah.

    Catatan Anda mengkompilasi aplikasi sementara kompilasi pilihan diaktifkan.
  • Anda menjalankan aplikasi.
Dalam skenario ini, pernyataan jika tidak bekerja dengan benar.

Pemecahan masalah

Informasi perbaikan terbaru

Perbaikan terbaru yang didukung sekarang tersedia dari Microsoft. Namun, ini ditujukan untuk memperbaiki hanya masalah yang dijelaskan di artikel ini. Gunakan hanya pada sistem yang mengalami masalah khusus ini. Perbaikan terbaru ini mungkin menerima pengujian tambahan. Oleh karena itu, jika Anda sama sekali tidak dipengaruhi oleh masalah ini, kami menganjurkan Anda menunggu pembaruan peranti penangkap lunak berikutnya yang berisi perbaikan terbaru ini.

Untuk segera memecahkan masalah ini, hubungi layanan dukungan pelanggan Microsoft untuk mendapatkan perbaikan terbaru. Untuk daftar lengkap nomor telepon layanan dukungan pelanggan Microsoft dan informasi mengenai biaya dukungan, kunjungi website Microsoft berikut:
http://support.Microsoft.com/contactus/?ws=support
Catatan Dalam kasus tertentu, biaya yang biasanya diadakan untuk panggilan dukungan mungkin dibatalkan apabila Teknisi Dukungan Microsoft menentukan bahwa pembaruan khusus akan memecahkan masalah Anda. Biaya dukungan biasa akan berhubungan dengan pertanyaan dan masalah yang tidak termasuk pada pembaruan tertentu yang dimaksud dukungan tambahan.

Prasyarat

Untuk menerapkan perbaikan terbaru ini, Anda harus memiliki Visual Studio 2010 SP1 diinstal.

Kebutuhan restart

Anda tidak harus me-restart komputer setelah Anda menginstal perbaikan terbaru ini jika file yang terkena tidak digunakan selama proses instalasi. Kami menyarankan agar Anda menutup semua komponen yang berhubungan dengan Visual Studio 2010 sebelum Anda menginstal perbaikan terbaru.

Informasi penggantian perbaikan terbaru

Perbaikan terbaru ini tidak menggantikan setiap perbaikan terbaru lainnya.

Informasi berkas

Versi bahasa Perserikatan Kerajaan dari perbaikan terbaru ini memiliki atribut berkas (atau atribut berkas yang lebih baru) yang didaftar di dalam Daftar Tabel berikut. Tanggal dan waktu untuk berkas-berkas ini tercantum dalam Coordinated Universal Time (UTC). Ketika Anda melihat informasi berkas, waktunya akan diubah ke waktu lokal. Untuk menemukan perbedaan waktu UTC dan waktu lokal, gunakan zona waktu tab di Tanggal dan waktu item dalam Control Panel.
Untuk semua didukung versi Visual Studio 2010
Perkecil tabel iniPerbesar tabel ini
Nama berkasVersi berkasUkuran fileTanggalPlatform
C2.dll16.0.40219.4042,608,19213-Desember-2012x 86
C2.dll16.0.40219.4042,494,52813-Desember-2012x 86
C2.dll16.0.40219.4042,593,34413-Desember-2012x 86
C2.dll16.0.40219.4042,962,49613-Desember-2012x 64

Status

Microsoft telah mengkonfirmasi bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana didaftar di bagian "Berlaku untuk".

Informasi lebih lanjut

Untuk informasi lebih lanjut tentang pilihan Visual C++ /O , kunjungi website MSDN berikut:
Informasi umum tentang pilihan /O
Untuk mereproduksi masalah ini, Jalankan aplikasi C++ yang menggunakan kode berikut:
#include "stdafx.h"
 
int main()
{
        for( int i = -1; i <= 3; i++ ) 
        {
               for( int j = -1; j <= 3; j++ ) 
               {
                      if (i >= 0 && i < 3 && j >= 0 && j < 3)
                      {
                            printf("%d\n", i * 3 + j);
                      }
               }
        }
        return 0;
}
Setelah Anda menjalankan aplikasi, Anda menerima hasil sebagai berikut:
-3
-2
-1
0
1
2
3
4
5
6
7
8
Namun, Anda mengharapkan hasil sebagai berikut dalam situasi ini:
0
1
2
3
4
5
6
7
8

Properti

ID Artikel: 2719783 - Kajian Terakhir: 10 Januari 2013 - Revisi: 6.0
Kata kunci: 
kbqfe kbfix kbexpertiseadvanced kbhotfixserver kbsurveynew kbmt KB2719783 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini: 2719783

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com