【发布时间】:2013-05-26 21:41:07
【问题描述】:
我有一个想从 C++ 调用的 C 函数。我不能使用“extern "C" void foo()”这种方法,因为 C 函数无法使用 g++ 编译。但它使用 gcc 编译得很好。任何想法如何从 C++ 调用函数?
【问题讨论】:
-
能否请您写一些示例代码和
g++错误消息 -
如果你用 C++ 编译器编译它,它就是 C++。 C 代码不必使用 C++ 编译器进行编译。它们是不同的语言。您的代码不是有效的 C++,因此不能使用 C++ 编译器进行编译。
-
@MatthieuRouget
void valid_in_C_but_not_in_CPlusPlus(size_t size) { char variable_length_array[size]; } -
我的尝试:
void f(void *pv) { int *pi = pv; *pi = 42; }^^ -
这应该保持打开状态,特别是因为它有很好的答案指出如何将 C(而不是 C++)编译器用于 C 代码。