Terangkan penentu jenis yang tidak menentu dan mengehadkan dalam bahasa C, dengan contoh

王林
Lepaskan: 2023-09-10 22:25:01
ke hadapan
797 orang telah melayarinya

Type qualifiers menambah sifat khas pada jenis data sedia ada dalam bahasa pengaturcaraan C.

Terangkan penentu jenis yang tidak menentu dan mengehadkan dalam bahasa C, dengan contoh

Terdapat tiga jenis kelayakan dalam bahasa C, antaranya kelayakan jenis tidak menentu dan terhad dijelaskan seperti berikut -

Volatile🎜 # 🎜🎜#

Kelayakan jenis tidak menentu digunakan untuk memberitahu pengkompil bahawa pembolehubah dikongsi. Iaitu, jika pembolehubah diisytiharkan tidak menentu, ia boleh dirujuk dan diubah oleh program lain (atau) entiti.

Sebagai contoh, volatile int x;

Limitations

Ini hanya berfungsi dengan penunjuk. Ia menunjukkan bahawa penunjuk hanyalah cara awal untuk mengakses data yang dirujuk. Ia menyediakan lebih banyak bantuan untuk pengoptimuman pengkompil.

Contoh program

Berikut ialah program C untuk kelayakan jenis tidak menentu -

   int *ptr
   int a= 0;
   ptr = &a;
   ____
   ____
   ____
      *ptr+=4; // Cannot be replaced with *ptr+=9
   ____
   ____
   ____
      *ptr+=5;
Salin selepas log masuk

Herere tidak boleh Gantikan dua pernyataan *ptr+=4 dan *ptr+=5 dengan satu pernyataan *ptr+=9. Kerana, tidak jelas sama ada pembolehubah "a" boleh diakses secara langsung (atau) melalui penunjuk lain.

Sebagai contoh,

   restrict int *ptr
   int a= 0;
   ptr = &a;
   ____
   ____
   ____
      *ptr+=4; // Can be replaced with *ptr+=9
   ____
   ____
      *ptr+=5;
____
   ____
Salin selepas log masuk

Di sini, pengkompil boleh menggantikan dua pernyataan dengan satu pernyataan, *ptr+=9. Kerana, yang pasti, pembolehubah tidak boleh diakses melalui mana-mana sumber lain.

Contoh

Berikut ialah program C menggunakan kata kunci sekatan-

Demonstrasi Langsung

rreee#🎜🎜🎜 🎜 #

Apabila prosedur di atas dilaksanakan, keputusan berikut akan dihasilkan-

#include<stdio.h>
void keyword(int* a, int* b, int* restrict c){
   *a += *c;
   // Since c is restrict, compiler will
   // not reload value at address c in
   // its assembly code.
   *b += *c;
}
int main(void){
   int p = 10, q = 20,r=30;
   keyword(&p, &q,&r);
   printf("%d %d %d", p, q,r);
   return 0;
}
Salin selepas log masuk

Atas ialah kandungan terperinci Terangkan penentu jenis yang tidak menentu dan mengehadkan dalam bahasa C, dengan contoh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan