Ketidakserasian antara C dan C++

PHPz
Lepaskan: 2023-08-28 18:33:06
ke hadapan
1117 orang telah melayarinya

Ketidakserasian antara C dan C++

Di sini kita akan melihat beberapa ketidakserasian antara C dan C++. Sesetengah kod C yang boleh disusun dengan pengkompil C tidak boleh disusun dengan pengkompil C++. dan akan mengembalikan ralat.

  • Kami boleh mentakrifkan fungsi menggunakan sintaks yang secara pilihan menentukan jenis parameter selepas senarai parameter.

Contoh

#include<stdio.h>
void my_function(x, y)int x;int y; { // Not valid in C++
   printf("x = %d, y = %d", x, y);
}
int main() {
   my_function(10, 20);
}
Salin selepas log masuk

Output

x = 10, y = 20
Salin selepas log masuk
Salin selepas log masuk

Output

Error in C++ :- x and y was not declared in this scope
Salin selepas log masuk
  • Dalam bahasa C atau beberapa versi lama C++, jenis pembolehubah lalai ialah integer. Tetapi dalam versi baharu C++, ralat berlaku.

Contoh

#include<stdio.h>
main() {
   const x = 10;
   const y = 20;
   printf("x = %d, y = %d", x, y);
}
Salin selepas log masuk

Output

x = 10, y = 20
Salin selepas log masuk
Salin selepas log masuk

Output

Error in C++ :- x does not name a type
y does not name a type
Salin selepas log masuk
  • Dalam bahasa C, objek data global boleh diisytiharkan beberapa kali tanpa menggunakan kata kunci luaran. Pengkompil C akan menganggap ini sebagai satu perisytiharan di kalangan banyak.

Contoh

#include<stdio.h>
int x;
int x;
int main() {
   x = 10;
   printf("x = %d", x);
}
Salin selepas log masuk

Output

x = 10
Salin selepas log masuk

Output

Error in C++ :- Redefinition of int x
Salin selepas log masuk
  • Dalam bahasa C, kita boleh menggunakan penunjuk void sebagai operan yang betul bagi pengendali tugasan, atau untuk memulakan sebarang pembolehubah jenis penunjuk.

Contoh

#include<stdio.h>
#include<malloc.h>
void my_function(int n) {
   int* ptr = malloc(n* sizeof(int)); //implicitly convert void* to int*
   printf("Array created. Size: %d", n);
}
main() {
   my_function(10);
}
Salin selepas log masuk

Output

Array created. Size: 10
Salin selepas log masuk

Output

Error in C++ :- Invalid conversion of void* to int*
Salin selepas log masuk
  • Dalam bahasa C, kita boleh lulus berbilang parameter jika jenis parameter tidak dinyatakan.

Contoh

#include<stdio.h>
void my_function() {
   printf("Inside my_function");
}
main() {
   my_function(10, "Hello", 2.568, &#39;a&#39;);
}
Salin selepas log masuk

Output

Inside my_function
Salin selepas log masuk

Output

Error in C++ :- Too many arguments to function &#39;void my_function()&#39;
Salin selepas log masuk

Atas ialah kandungan terperinci Ketidakserasian antara C dan C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!