Calling C++ functions from C file

前端 未结 2 549
抹茶落季
抹茶落季 2020-12-14 04:29

I am quite new to C and C++. But I have some C++ functions which I need to call them from C. I made an example of what I need to do


main.c:

2条回答
  •  死守一世寂寞
    2020-12-14 05:11

    Short answer:

    example.cpp should include example.h.

    Longer answer:

    When you declare a function in C++, it has C++ linkage and calling conventions. (In practice the most important feature of this is name mangling - the process by which a C++ compiler alters the name of a symbol so that you can have functions with the same name that vary in parameter types.) extern "C" (present in your header file) is your way around it - it specifies that this is a C function, callable from C code, eg. not mangled.

    You have extern "C" in your header file, which is a good start, but your C++ file is not including it and does not have extern "C" in the declaration, so it doesn't know to compile it as a C function.

提交回复
热议问题