Bagikan melalui


C28714

peringatan C28714: Transmisikan antara jenis bilangan bulat yang berbeda secara semantik

Peringatan ini menunjukkan bahwa nilai NTSTATUS sedang dilemparkan secara eksplisit ke jenis Boolean. Ini kemungkinan akan memberikan hasil yang tidak diinginkan. Misalnya, nilai keberhasilan umum untuk NTSTATUS, STATUS_SUCCESS, palsu saat diuji sebagai Boolean.

Dalam kebanyakan kasus, makro NT_SUCCESS harus digunakan untuk menguji nilai NTSTATUS. Makro ini mengembalikan true jika nilai status yang dikembalikan bukan peringatan atau kode kesalahan. Jika fungsi mengembalikan Boolean untuk menunjukkan kegagalan/keberhasilannya, fungsi harus secara eksplisit mengembalikan jenis Boolean yang sesuai daripada bergantung pada transmisi NTSTATUS ke jenis Boolean.

Juga, terkadang program dapat mencoba menggunakan kembali variabel lokal Boolean untuk menyimpan nilai NTSTATUS. Praktik ini seringkali rawan kesalahan; jauh lebih aman (dan kemungkinan lebih efisien) untuk menggunakan variabel NTSTATUS yang terpisah.