Maison > développement back-end > C++ > le corps du texte

Incompatibilité entre C et C++

PHPz
Libérer: 2023-08-28 18:33:06
avant
1117 Les gens l'ont consulté

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);
}
Copier après la connexion

Output

x = 10, y = 20
Copier après la connexion
Copier après la connexion

Output

Error in C++ :- x and y was not declared in this scope
Copier après la connexion
  • 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);
}
Copier après la connexion

Output

x = 10, y = 20
Copier après la connexion
Copier après la connexion

Output

Error in C++ :- x does not name a type
y does not name a type
Copier après la connexion
  • 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);
}
Copier après la connexion

Output

x = 10
Copier après la connexion

Output

Error in C++ :- Redefinition of int x
Copier après la connexion
  • 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);
}
Copier après la connexion

Output

Array created. Size: 10
Copier après la connexion

Output

Error in C++ :- Invalid conversion of void* to int*
Copier après la connexion
  • 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;);
}
Copier après la connexion

Sortie

Inside my_function
Copier après la connexion

Sortie

Error in C++ :- Too many arguments to function &#39;void my_function()&#39;
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!