int set_diagnostic_email_config( char *to_address,bool include_timestamp,bool send_for_crashes,bool send_daily_status,bool send_on_event1,bool send_on_event2 )
一个类似的“get”函数存在许多参数..这个方法的主要优点是如果有人添加了一个新选项,例如“bool send_on_event3”,那么因为原型改变了你被迫更新每个地方这个函数调用是使用(假设人们称之为多个地方).
我更喜欢以下内容:
int get_diagnostic_email_config( struct email_config *p_config );int set_diagnostic_email_config( struct email_config *p_config );
您只需根据需要更改结构元素.但是……如果有人更新了email_config“结构,它不会强迫人们更新所有使用它的地方(即使我们经常想……).而且我的同事抱怨说如果有人试图初始化手动“email_config”,然后如果事情后来添加,那么这些新字段将被取消初始化而没有警告.
关于哪种方法首选,是否有任何强烈的共识?或者还有另一种我想念的选择?
解决方法 结构比长列表更好.很长的清单很难维护,因为没有人记得确切的顺序.您可以创建一个构造函数,使用安全(默认和/或无效)条目填充此结构.始终(可能在访问器功能中)检查无效值将使得在初始化中发现错误变得容易.
您可以在此结构中隐藏幻数.第一个字段是CONfig_MAGIC,它需要等于您定义的常量.您在构造函数中设置此字段,并期望始终设置.这样你就可以避免某人只需要malloc()结构并手动将其初始化.这样的程序员需要了解这个CONfig_MAGIC常量,并且很可能找到并使用正确的构造函数.
总结以上是内存溢出为你收集整理的C配置API全部内容,希望文章能够帮你解决C配置API所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)