想象一下你有:
我的文件.h
typedef struct _myStruct myStruct;
struct _myStruct
{
uint32_t uData1;
uint32_t uData2;
uint32_t uData3;
/* More data members */
}
void myStructSetData(myStruct * const pMyStruct, const uint32_t uData1, const uint32_t uData2, const uint32_t uData3)
{
if (!pMyStruct)
return
pMyStruct->uData1 = uData1;
pMyStruct->uData2 = uData2;
pMyStruct->uData3 = uData3;
}
主程序
int main(void)
{
...
/* myStructSetData(pMyStruct, 1, 2, 3); */
...
myStructBuild(pMyStruct);
...
}
我提供了 myStructSetData(),但用户可能不一定使用此函数来设置 uData1、2 和 3。在 myStructBuild() 中,我想知道是否设置了 uData1、2 和 3,除非我在创建 pMyStruct 或使用 bIsData1Set 等布尔值时初始化了它们(我想避免)。
那么将uData1、uData2和uData3初始化为-1有意义吗?
因此,在 myStructBuild() 中,我会进行如下检查:
if (pMyStruct->uData1 != -1)
{
/* Include uData1 when building */
}