gpt4 book ai didi

c++ - 可以从 C 例程调用随机 C++ 2011 标准函数吗?

转载 作者:太空狗 更新时间:2023-10-29 19:57:23 26 4
gpt4 key购买 nike

我需要从一个范围内生成一个随机整数,并且发现所讨论的内容非常有趣 here@Walter 的回答中。但是,它是 C++11 标准,我需要使用 C,有没有办法从 C 调用?我在这里重现他的回答:

#include <random>

std::random_device rd; // only used once to initialise (seed) engine
std::mt19937 rng(rd()); // random-number engine used (Mersenne-Twister in this case)
std::uniform_int_distribution<int> uni(min,max); // guaranteed unbiased

auto random_integer = uni(rng);

最佳答案

您不能在 C 中使用 C++ 类,但可以将 C++ 功能包装在函数中,这些函数可以从 C 中调用,例如在 getrandom.cxx 中:

#include <random>

static std::random_device rd;
static std::mt19937 rng(rd());
static std::uniform_int_distribution<int> uni(min,max);

extern "C" int get_random()
{
return uni(rng);
}

这是一个 C++ 模块,导出一个带有 C 链接的 get_random 函数(即,可从 C 调用。您在 getrandom.h 中声明它:

extern "C" int get_random();

并且可以从您的 C 代码中调用它。

关于c++ - 可以从 C 例程调用随机 C++ 2011 标准函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35667524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com