小编vik*_*smk的帖子

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我经历了其他一些听起来相似的问题.但他们并没有真正拥有我正在寻找的工作流程.

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

c c++

10
推荐指数
1
解决办法
1363
查看次数

32x32乘以并添加优化

我正在努力优化应用程序.我发现我需要优化内循环以提高性能.rgiFilter是一个16位的arrary.

for (i = 0; i < iLen; i++) {
    iPredErr = (I32)*rgiResidue;
    rgiFilter = rgiFilterBuf;
    rgiPrevVal = rgiPrevValRdBuf + iRecent;
    rgiUpdate = rgiUpdateRdBuf + iRecent;

    iPred = iScalingOffset;

    for (j = 0; j < iOrder_Div_8; j++) {


                 iPred += (I32) rgiFilter[0] * rgiPrevVal[0]; 
                 rgiFilter[0] += rgiUpdate[0];

                 iPred += (I32) rgiFilter[1] * rgiPrevVal[1]; 
                 rgiFilter[1] += rgiUpdate[1];

                 iPred += (I32) rgiFilter[2] * rgiPrevVal[2]; 
                 rgiFilter[2] += rgiUpdate[2];

                 iPred += (I32) rgiFilter[3] * rgiPrevVal[3]; 
                 rgiFilter[3] += rgiUpdate[3];

                 iPred += (I32) rgiFilter[4] * rgiPrevVal[4]; …
Run Code Online (Sandbox Code Playgroud)

c optimization loops

3
推荐指数
1
解决办法
779
查看次数

标签 统计

c ×2

c++ ×1

loops ×1

optimization ×1