Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Variabel menyimpan nilai yang harus diperiksa
Peringatan ini menunjukkan bahwa fungsi panggilan tidak memeriksa nilai variabel yang ditentukan, yang disediakan oleh fungsi. Nilai yang dikembalikan dianotasikan dengan _Check_return_ anotasi, tetapi fungsi panggilan tidak menggunakan nilai atau menimpa nilai tanpa memeriksanya.
Peringatan ini mirip dengan peringatan C6031, tetapi hanya dilaporkan ketika kode tidak menguji atau memeriksa nilai variabel, seperti dengan menggunakannya dalam perbandingan. Cukup menetapkan nilai tidak dianggap sebagai pemeriksaan yang memadai untuk menghindari peringatan ini. Alias hasil dari fungsi dianggap sebagai pemeriksaan yang memadai, tetapi hasilnya sendiri harus dianotasikan dengan _Check_return_.
Fungsi tertentu (seperti strlen) ada hampir secara eksklusif untuk nilai pengembaliannya, jadi masuk akal bagi mereka untuk memiliki _Check_return_ anotasi. Untuk fungsi-fungsi ini, alat Analisis Kode mungkin melaporkan peringatan ini ketika nilai pengembalian tidak digunakan. Peringatan ini biasanya menunjukkan bahwa kode salah, misalnya, mungkin berisi kode residu yang dapat dihapus. Namun, dalam beberapa instans yang jarang terjadi, nilai pengembalian sengaja tidak digunakan. Yang paling umum dari instans ini adalah di mana panjang string dikembalikan tetapi tidak benar-benar digunakan sebelum beberapa pengujian lain dibuat. Pengujian lain itu menyebabkan jalur disimulasikan di mana panjang string akhirnya tidak digunakan. Ketika ini terjadi, kode bisa benar, tetapi mungkin tidak efisien.
Ada dua strategi utama untuk menangani kasus-kasus ini di mana nilai pengembalian tidak digunakan:
Urutkan ulang kode sehingga panjang string hanya dikembalikan di sepanjang jalur tempat kode diperlukan.
#pragma Gunakan peringatan untuk menekan peringatan--jika dengan menyusun ulang kode, Anda akan membuat kode terlalu kompleks atau kurang berguna.
Contoh
Contoh kode berikut menghasilkan peringatan ini:
IoGetDmaAdapter(pPDO, &DevDesc, &nMapRegs);
//...
Contoh kode berikut menghindari peringatan ini:
IoGetDmaAdapter(pPDO, &DevDesc, &nMapRegs);
//...
if (nMapRegs < MIN_REQUIRED_MAPS) {
//...
}