Walaupun terdapat banyak persamaan, terdapat perbezaan yang ketara antara C dan C . Ini menimbulkan persoalan: bolehkah kod sah dalam kedua-dua bahasa masih menghasilkan hasil yang berbeza apabila disusun dengan penyusun standard masing-masing?
Prasyarat untuk Perbandingan Adil
Untuk memastikan sesuatu yang bermakna perbandingan, mari kita wujudkan syarat tertentu:
Ketaksamaan Tingkah Laku
Pertimbangkan coretan kod berikut:
#include <stdio.h> struct f { int x; }; int main() { f(); } int f() { return printf("hello"); }
Dalam C , kod ini tidak akan menghasilkan output, kerana objek f sementara dicipta dan dimusnahkan. Walau bagaimanapun, dalam C90, ia akan mencetak "hello" kerana fungsi boleh digunakan tanpa pengisytiharan terlebih dahulu.
Varians ini timbul daripada tafsiran berbeza bagi f() dalam C dan C . Dalam C, f() dianggap sebagai panggilan fungsi, manakala dalam C , ia dianggap sebagai pengisytiharan struct.
Atas ialah kandungan terperinci Bolehkah Kod Sah dalam Kedua-dua C dan C Menghasilkan Output Berbeza Apabila Disusun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!