comment un appel de C++ à c fonctionne-t-il en interne ??appelant le code c de C++
1
A
Répondre
2
Il s'agit d'un détail de mise en œuvre robuste. Mais la plupart des compilateurs C++ que je connais n'essaient pas de faire quelque chose de spécial pour différencier une fonction C d'une fonction C++ non-instance. Juste la convention d'appel cdecl olden plaine pour les deux. Un peu important parce que l'implémentation CRT, avec des fonctions comme printf(), est aussi utilisable par un compilateur C que par le compilateur C++ du même fournisseur. Personne ne veut en conserver deux versions.
3
Le compilateur C++ «fait le bon choix» et utilise la convention d'appel correcte pour la fonction C - une réponse qui sonne boiteuse mais je ne sais pas si on peut en dire beaucoup plus!
Questions connexes
- 1. Appelant le code C de FORTRAN
- 2. C# appelant le code non managé
- 3. appelant c de php
- 4. C# pointeur - statique appelant
- 5. C# Méthode appelant
- 6. appelant dll delphi de C#
- 7. WinApp en C# appelant le programme java
- 8. convertir le code C++ C#
- 9. Appeler le code C dll de C#?
- 10. appelant la fonction c à partir de C#
- 11. Nettoyer le code indésirable C#
- 12. Comment exécuter le code C# en utilisant le code C#?
- 13. Comment afficher le message d'exception du code C# managé dans le code C++
- 14. appelant gérés C# fonctions de C++ non géré
- 15. appelant C# à partir du complément com C++
- 16. Problème appelant le code C de Linux à partir du gestionnaire FIQ
- 17. En utilisant le code C++ dans C#
- 18. Code C++/C optimisé pour le profil
- 19. C/C++ dans le code Ruby?
- 20. Comment convertir le code C# en C++
- 21. C# équivalent pour le code C nécessaire
- 22. Code C sous Linux vers le code C sous Windows
- 23. appelant alerte de code-behind
- 24. C# ShowDialog appelant un autre ShowDialog
- 25. C# winforms code à C# code wpf
- 26. Générateur de code de schéma XML C++
- 27. Navigation dans le code C++
- 28. CGRect dans le code C
- 29. Comment compiler le code C++ à l'aide de l'application C#
- 30. Pouvez-vous exécuter le code C# à partir de C++?
À titre de référence, comment «extern» C «' factorise-t-il? – cHao
@cHao il arrête le nom mangling que C++ fait pour supporter la surcharge de l'opérateur, par exemple. 'foo (int)' et 'foo (double)' pourraient traduire en 'foo_int' et' foo_double' dans l'assembly émis par le compilateur, mais 'extern 'C" foo (int) 'et' extern "C" foo (double) 'les deux traduisent simplement en' foo' –
Il change le nom de l'identifiant vu par l'éditeur de liens. Désactive le mangling du nom C++. Toutes les fonctions CRT traditionnelles sont extern "C" dans leur déclaration vue par le compilateur C++. –