web-dev-qa-db-fra.com

Inclusion d'en-têtes C dans un programme C ++

J'ai un programme C++ (.cpp) à l'intérieur duquel je souhaite utiliser certaines des fonctions présentes dans les fichiers d'en-tête C tels que stdio.h, conio.h, stdlib.h, graphics.h, devices.h etc.

Je pourrais inclure la bibliothèque stdio.h dans mon fichier cpp comme: #include <cstdio>. Comment inclure les autres fichiers de bibliothèque?

Comment ajouter la bibliothèque graphics.h?

J'utilise Microsoft Visual Studio 6.0 Enterprise Edition et également Turbo C++ 3.0.

33
Arjun Vasudevan

Pour une liste des en-têtes C standard C (stdio, stdlib, assert, ...), ajoutez un c et supprimez le .h. Par exemple, stdio.h devient cstdio.

Pour les autres en-têtes, utilisez

extern "C"
{
  #include "other_header.h"
}
59
Scharron
#ifdef __cplusplus
extern "C"
{
#endif

// your functions here for the header

#ifdef __cplusplus
}
#endif

Ce format devrait vous aider à utiliser les fichiers d'en-tête pour C et C++ sans aucun problème ...

J'espère que cela t'aides...:)

35
Flash

Je ne sais pas exactement ce dont vous avez besoin, mais si vous souhaitez utiliser des fonctions C à l'ancienne dans votre programme C++, vous pouvez facilement les inclure en supprimant le .h et en ajoutant un préfixe "c".

par exemple, si vous souhaitez inclure math.h utilisation

#include <cmath>
6
MBZ

Il suffit de les inclure dans un extern "C" bloquer et ils devraient fonctionner comme prévu.

3
Axel Gneiting

Vous pouvez #include les utilisant leur nom d'origine. #include <stdio.h> fonctionne très bien en C++.

1
Steven