Penyingkiran Halus C dari C
Walaupun dipercayai secara meluas bahawa C ialah subset daripada C , pemeriksaan yang lebih dekat mendedahkan perbezaan yang ketara. Berikut ialah beberapa keadaan di mana kod yang menyusun dalam C menghadapi halangan dalam C :
Tiada Definisi Tentatif
Dalam C , mentakrifkan semula pembolehubah adalah menyalahi undang-undang, tidak seperti dalam C, di mana tentatif takrifan membenarkan takrifan semula seterusnya.
Jenis Tatasusunan Ketidakserasian
C membezakan antara jenis tatasusunan dengan saiz dan tanpa saiz, menjadikan int[] dan int[N] tidak serasi. C, walau bagaimanapun, membenarkan ia digunakan secara bergantian.
Sintaks Fungsi K&R
C tidak membenarkan gaya definisi fungsi K&R di mana senarai parameter fungsi secara langsung mengikut jenis pulangan .
Skop Struktur Bersarang
C mentakrifkan struct bersarang untuk mempunyai skop kelas, manakala C mematuhi gelagat skop setempat yang terdahulu.
Int lalai
Dalam C , menggunakan "auto" tanpa jenis yang jelas penentu adalah tidak sah, tidak seperti dalam C, di mana ia lalai int.
Ketakserasian C99 Tambahan
C99 memperkenalkan percanggahan lanjut:
Penentukan Dimensi Tatasusunan
C tidak membenarkan penentu pengisytiharan dalam dimensi tatasusunan parameter fungsi, iaitu dibenarkan dalam C.
Susunatur Panjang Boleh Ubah
C mengetepikan sokongan untuk tatasusunan panjang berubah, manakala C membenarkannya dengan mengisytiharkan tatasusunan dengan saiz bukan tetap.
Ahli Susunan Fleksibel
C tidak mempunyai ahli tatasusunan yang fleksibel dalam struct, ciri yang terdapat dalam C.
Kelayakan Sekat
C memperkenalkan kelayakan sekatan untuk membantu dalam analisis aliasing, tetapi ia tidak disokong dalam C .
Atas ialah kandungan terperinci Bagaimanakah C Berbeza Secara Halus daripada C dari Segi Penyusunan dan Sintaks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!