C++到C转换工作流程

vik*_*smk 10 c c++

首先,我不是在寻找一种能够从现有的cpp代码库中生成无法维护的C代码的工具.这是客户的要求,所以我不能只使用CPP代码库本身.

我正在尝试制定工作流程,以便我可以在不破坏代码的情况下逐步将代码库从CPP转换为C. 我已经考虑过使用"extern C"方法的一些事情

  1. 结构类
  2. Classes的成员函数将转换为Struct_name_FunctionName格式.
  3. 如果函数被2个类重用,我打算使用函数指针.
  4. 用实际函数替换+, - 等重载运算符.例如Add_,Sub_等

你们可以再添加一下吗?并指出潜在的陷阱?由于NDA,我无法共享代码库.代码库本身并不大.它有大约50个cpp文件,看到了100多个类.

提前致谢.

Ps我经历了其他一些听起来相似的问题.但他们并没有真正拥有我正在寻找的工作流程.

[结束]:虽然该帖子因为过于宽泛而被搁置,但许多评论实际上都很有用.我比以前更清楚需要做什么.谢谢.

MSa*_*ers 9

好吧,你需要解决一个很长的清单.在没有声称完整的情况下,您还需要:

  1. 虚函数支持(不可能很难,函数指针表)
  2. 构造函数和析构函数(合理映射到普通函数,很多工作)
  3. 异常和堆栈展开(非常难)
  4. 缺少C++库函数和类(很多工作)

但不要自欺欺人.std::map<std::string, std::pair<int, int>>是一个非常简单的类,为每个字符串存储两个int.该课程的C语翻译完全混乱.MyMap["five,three"] = std::make_pair(5,3)很容易变成100多行C代码.