Rumah >pembangunan bahagian belakang >C++ >Terangkan penentu jenis yang tidak menentu dan mengehadkan dalam bahasa C, dengan contoh

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

王林
王林ke hadapan
2023-09-10 22:25:01828semak imbas

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;

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;
____
   ____

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;
}

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam