Maison  >  Article  >  développement back-end  >  Incompatibilité entre C et C++

Incompatibilité entre C et C++

PHPz
PHPzavant
2023-08-28 18:33:061083parcourir

Incompatibilité entre C et C++

Ici, nous verrons quelques incompatibilités entre C et C++. Certains codes C pouvant être compilés avec un compilateur C ne peuvent pas être compilés avec un compilateur C++. et renverra une erreur.

  • Nous pouvons définir des fonctions en utilisant une syntaxe qui spécifie éventuellement les types de paramètres après la liste des paramètres.

Exemple

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

Output

x = 10, y = 20

Output

Error in C++ :- x and y was not declared in this scope
  • En langage C ou dans certaines anciennes versions de C++, le type de variable par défaut est entier. Mais dans les nouvelles versions de C++, une erreur se produit.

Exemple

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

Output

x = 10, y = 20

Output

Error in C++ :- x does not name a type
y does not name a type
  • En langage C, les objets de données globaux peuvent être déclarés plusieurs fois sans utiliser le mot-clé extern. Le compilateur C traitera cela comme une déclaration parmi tant d’autres.

Exemple

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

Output

x = 10

Output

Error in C++ :- Redefinition of int x
  • En langage C, nous pouvons utiliser le pointeur void comme opérande droit de l'opérateur d'affectation, ou pour initialiser n'importe quelle variable de type pointeur.

Exemple

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

Output

Array created. Size: 10

Output

Error in C++ :- Invalid conversion of void* to int*
  • En langage C, nous pouvons transmettre plusieurs paramètres si le type de paramètre n'est pas spécifié.

Exemple

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

Sortie

Inside my_function

Sortie

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer