gpt4 book ai didi

c++ - 在 C++ 中引用 C 结构

转载 作者:太空狗 更新时间:2023-10-29 20:24:33 25 4
gpt4 key购买 nike

我需要在我的 C++ 代码中使用一些 C 定义的结构。下面是C头文件中的结构

#ifdef __cplusplus
extern "C" {
#endif

typedef struct TestParameters {
long p1;
long p2;
long p3;
} TestParameters_t;
#ifdef __cplusplus
}

下面的代码可以编译,但行为是否按照标准定义和有效以接收 C 实例作为引用并使用它?

TestParameters_t testParams;
test(testParams);

// Is it valid to receive a C struct instance as a reference in C++ code
void test(TestParameters_t &testParams)
{

}

最佳答案

是的,即使结构来自 C 头文件,您也可以像使用 C++ 头文件中定义的结构一样使用它。

使用其引用或地址传递结构比使用其值更好。

如果函数不会修改它,请不要忘记将其标记为const

void test( const TestParameters_t &testParams)
{
// Won't modify testParams;
}

void test( TestParameters_t &testParams)
{
// Will modify testParams;
}

关于c++ - 在 C++ 中引用 C 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27547340/

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