试图了解如何将 C++ 对转换为 C 代码

Uga*_*uga 0 c c++ converters

所以我正在尝试做一个小测试项目,我正在观看一个关于如何制作部分代码的教程,问题是,在视频中,用户使用 C++ 而我正在研究 C。我试着弄清楚它出来并搜索了一下,但对我来说仍然很困惑。

所以我无法理解的一段代码是这样的:

pair<int, int> generateUnPos() {

    int occupied = 1;
    int line, column;

    while(occupied){
        line = rand() % 4;
        column = rand() %4;
        if(board[line][column] == 0){
            occupied = 0;
        }
    }

    return make_pair(line, column);
}
Run Code Online (Sandbox Code Playgroud)

我知道它与结构有关,但我无法弄清楚。有人可以帮我吗。

Jos*_*ica 5

C 中不存在模板,因此您需要创建自定义类型,如下所示:

struct pair_int_int {
    int first;
    int second;
};
Run Code Online (Sandbox Code Playgroud)

然后像这样返回它:

return (struct pair_int_int){line, column};
Run Code Online (Sandbox Code Playgroud)

  • @user4581301:您的替代方案可能会更慢,并且可读性较差。在[某些实现](https://www.agner.org/optimize/calling_conventions.pdf)上,可以使用两个处理器寄存器来返回这样的一对。 (2认同)