gpt4 book ai didi

C - 如何检查是否填写了结构的所有必填字段? (最优雅的方法)

转载 作者:太空宇宙 更新时间:2023-11-04 00:23:07 24 4
gpt4 key购买 nike

我有一个函数,它有一个指向某个结构的指针作为它的参数。我如何在此函数中检查在函数调用之前是否已填写结构的所有必填字段?

例子:

//lib.c
void f(X_type *x)
{
...
}

//user.c
main(){
X_type object;
object.name = "I am X";
object.ID = 1;
...
f(X_type &object);
}

最佳答案

创建一个将所有字段作为参数的初始化函数(就好像它是一个对象构造函数)并使用它而不是一个一个地设置字段。

当然,这不会阻止任何人继续以错误的方式进行操作,但如果您坚持使用该函数的纪律,那么在不注意的情况下让某些字段未初始化会更加困难。如果您更改结构的字段(以及相应的函数),编译器将在您忘记更新的任何地方提示不匹配的参数。

您可以更进一步(但仅使用纯 C 就不会多了)对预处理器和 include 进行一些技巧以强制执行数据封装,但这有点麻烦。任何有关使用 C 的 OOP 的书籍都可以帮助您解决这个问题,但我不知道这样做是否值得。

关于C - 如何检查是否填写了结构的所有必填字段? (最优雅的方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1769920/

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