sách gpt4 ăn đã đi

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

In lại 作者:太空狗 更新时间:2023-10-29 20:24:33 25 4
mua khóa gpt4 giày nike

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

#ifdef __cplusplus
bên ngoài "C" {
#kết thúc nếu

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âu trả lời hay nhất

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

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

如果函数不会修改它,请不要忘记将其标记为hằng số

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

hoặc

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

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

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress