gpt4 book ai didi

c - 如何根据条件简洁地分配给结构的成员?

转载 作者:太空狗 更新时间:2023-10-29 15:11:13 26 4
gpt4 key购买 nike

我有一些看起来像这样的代码:

struct mystruct
{
/* lots of members */
};

void mystruct_init( struct mystruct* dst, int const condition )
{
if ( condition )
{
/* initialize members individually a certain way */
}
else
{
/* initialize members individually another way */
}
}

我正在考虑的选项:

  • 最简单的方法是拥有一个分配给每个成员并调用它的函数。我是否应该只希望编译器优化该调用?
  • 定义一个宏以明确避免函数调用开销。
  • 把一切都写得很长。

在 C11 中处理这种情况的正确方法是什么?

最佳答案

只需编写一个初始化成员的函数,或者如果您愿意(基于意见),使用 MACRO。

顺便说一句,我个人会这样做:

void mystruct_init( struct mystruct* dst, int const condition )
{
if ( condition )
init_first_way(..);
else
init_second_way(..);
}

或者只使用三元运算符。请记住,您关心可读性,并且始终牢记:

Simplicity is a virtue!


我真的认为在这个阶段担心优化会成为不成熟优化的受害者,因为我怀疑它会成为瓶颈。

一般来说,如果你想优化你的代码,分析你的代码(当它以优化标志运行时,很多人不知道这一点,我就是其中之一:Poor performance of stl list on vs2015 while deleting nodes which contain iterator to self's position in list),找到瓶颈并尝试优化那个瓶颈。

关于c - 如何根据条件简洁地分配给结构的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39137029/

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