0

假设我有一个使用类和模板的 C++ 库 lib.h。还假设我有一个自定义 C++ 头文件 myLink.h,其中包含以下内容:

#include "lib.h"

  //call methods from lib.h that use templates and classes
  //  and return an integer based off of the information gained from calling functions lib.h  
  extern "C" int foo(int param1, const int param2);

现在假设我在一个名为 test.c 的 C 文件中。如下调用函数 foo() 是否合法?

//in test.c
int first = foo(5, 6);

另外,编译的目标代码/链接器阶段发生了什么?

谢谢!

4

1 回答 1

0

如下调用函数 foo() 是否合法?

 int first = foo(5, 6);

是的,这是合法的。尽管您应该阅读以下内容以确保此合法电话将链接。

编译的目标代码/链接器阶段发生了什么?

使用类不会干扰。C++ 类将被编译为链接器能够理解的目标代码。

编辑克里斯多德的评论:

您的模板也将通过foo调用它们来创建。

于 2012-07-10T03:07:35.303 回答