如何将C ++代码转换为C是否有在线转换器 [英] How do I convert C++ code to C is there an online converter

查看:103
本文介绍了如何将C ++代码转换为C是否有在线转换器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  #include   <   iostream  >  
#include mt.h

使用 命名空间标准;

int main( int argc, char ** argv){
int N = 1000000 ;
double ran [N];
double mean = 0 0 ;

// 初始化Mersenne Twister
MersenneTwister mt;
mt.print();

// 从统一(0,1) $ b取N画$ b for int i = 0 ; i< N; i ++){
ran [i] = mt.random();
}

// 计算平均值
for int i = 0 ; i < N; i ++){
mean + = ran [i];
}
mean / = N;

cout<< << N << draw:<<平均<< ENDL;

return EXIT_SUCCESS;
}





我的尝试:



i有marsenne twister代码,我希望它在c

解决方案

没有他们没有在线转换器。在C中你没有任何类,所以你必须分解你的MersenneTwister类。



一个可能的解决方案是,该类的所有数据成员都成为一个结构,并且你的函数得到一个指向该结构的指针作为输入。



  struct  MersenneTwister { 
int 数据;
// 依此类推
} _MersenneTwister;

// 原型设计
void init(_MersenneTwister * twister); // 设置一些默认值
void print(_MersenneTwister * twister); // 使用
void 随机(_MersenneTwister * twister); //





您必须使用打印替换。查看示例代码以了解其用法。


似乎有一些工具,但可能不符合您的喜好,请参阅:如何将C ++代码转换为C - 堆栈溢出 [ ^ ]

在线版本(怀疑是否有效) ): Test Drive Comeau C / C ++ Online [ ^ ]


有2个选项。第一个是由KarstenK使用结构给出的。

第二个是使用C重写代码。问题是C ++是面向对象的语言,所以函数,变量和其他类或对象被封装在具有公共和私有部分的类中并提交继承,只要结构完全不同,所以除非程序非常简单并且满足许多条件,否则没有直接的方法来建立自动系统进行转换

#include <iostream>
#include "mt.h"

using namespace std;

int main (int argc, char** argv) {
    int N = 1000000;
    double ran[N];
    double mean = 0.0;

    // Initialize a Mersenne Twister
    MersenneTwister mt;
    mt.print();

    // Take N draws from Uniform(0,1)
    for (int i = 0; i < N; i++) {
        ran[i] = mt.random();
    }

    // Calculate the mean
    for (int i = 0; i < N; i++) {
        mean += ran[i];
    }
    mean /= N;

    cout << "Sample mean of " << N << "draws:" << mean << endl;

    return EXIT_SUCCESS;
}



What I have tried:

i have marsenne twister code and i want it in c

解决方案

No their is no online converter. In C you havent any classes and so you must decompose your MersenneTwister class.

A possible solution is, that all data members from that class becoming an struct, and your functions get a pointer to that struct as input.

struct MersenneTwister {
  int data;
  // and so on
} _MersenneTwister;

//prototyping
void init( _MersenneTwister* twister ); // set some default values
void print( _MersenneTwister* twister ); //use
void random( _MersenneTwister* twister ); //



The out you must replace with print. Look at the sample code to understand the usage.


There seem to be some tools, but probably not to your liking, see this: How to convert C++ Code to C - Stack Overflow[^]
An online version (doubt if it works): Test Drive Comeau C/C++ Online[^]


There are 2 options. The first one is given by KarstenK using structs.
The second is to rewrite the code using C. The problem is that C++ is an object oriented language, so functions, variable and other classes or objects are encapsulated in classes with public and private parts and submitted to inheritances so as long as the structure is totally different so there is not a direct way to make an automatic system that makes that conversion unless the program is very simple and fulfill a number of conditions


这篇关于如何将C ++代码转换为C是否有在线转换器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆