I failed to define overloading functions with error message of error: conflicting declaration of C function if enclosing by #ifdef __cplusplus blocks.
Below is a simple code for an easy view. This piece of code worked fine without #ifdef __cplusplus blocks.
However, my project code does need #ifdef __cplusplus as it involves combination of C and C++ codes.
Command lines after #ifdef __cplusplus block should be C++, why did it fail to define the overloading function? How to fix this problem with presence of #ifdef __cplusplus blocks?
#include <iostream>
using namespace std;
#ifdef __cplusplus
extern "C"
{
#endif
int add(int x)
{
    return x;
}
int add(int x, int y)
{
    return x + y;
}
int main() {
//  cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
    int X = add(2);
    int Z = add(8,2);
    cout <<X<<" "<<Z<<endl;
    return 0;
}
#ifdef __cplusplus
}
#endif
Aucun commentaire:
Enregistrer un commentaire