Berhati-hati dengan Akibat Tidak Ditakrifkan daripada "memadam ini"; Memeriksa Nilainya Dilarang
Apabila menggunakan binaan "padam ini" dalam C , Soalan Lazim C menasihatkan supaya tidak cuba mengakses atau memanipulasi penuding "ini" selepas itu. Sebab sekatan ini melangkaui tiga sebelumnya yang digariskan dalam Soalan Lazim:
Sebab Sekatan #4: Nilai "ini" selepas memanggil "padam ini" sememangnya tidak ditentukan dan tidak ditentukan . Oleh itu, sebarang percubaan seterusnya untuk berinteraksi dengannya, termasuk tetapi tidak terhad kepada yang berikut, dijamin akan menimbulkan tingkah laku yang tidak ditentukan:
Potensi Akibat Mengabaikan Sekatan:
Walaupun sesetengah penyusun mungkin mengendalikan gelagat yang tidak ditentukan dalam contoh khusus ini dengan cara yang boleh diramalkan, tiada jaminan. Spesifikasi C secara eksplisit membenarkan pengkompil menentukan sebarang tingkah laku apabila terlibat dalam tindakan yang tidak ditentukan. Ini boleh mengakibatkan akibat yang pelik atau malapetaka, termasuk tetapi tidak terhad kepada kerosakan data atau kegagalan sistem lengkap.
Alternatif Selamat:
Untuk mengatasi sekatan ini, ia disyorkan untuk membuat salinan penuding "ini" (cth., sebagai integer) sebelum memanggil "padam ini", memastikan bahawa nilai penuding asal kekal boleh diakses dan boleh diramal selepas pemadaman.
Atas ialah kandungan terperinci Mengapakah mengakses 'ini' selepas 'memadamkan ini' dalam C dilarang sama sekali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!