gpt4 book ai didi

c++ - 如果不为空,则为指针赋值

转载 作者:行者123 更新时间:2023-11-28 02:43:50 25 4
gpt4 key购买 nike

我有一个整数指针作为默认函数参数。如果它不为空,我想分配一些值,可能是 200 行中的每 10 行。在每次分配之前进行标准检查,我的代码很容易变得庞大且难以阅读。 (我指的是源文件的长度和可读性,而不是二进制大小。)

替换这个是好的做法吗:

// Previous statement
// Use to put empty line here
if(ptr)
*ptr = val;
// Empty line also here
// Next statement

用这个:

// Previous statement
assignIfNotNull(ptr, val);
// Next statement

并将 if 放入函数中?

inline void assignIfNotNull(int *ptr, int val)
{
if(ptr)
*ptr = val;
}

现在,我似乎是一丝不苟,但这将节省每次使用 3 行。也许这不是我的编程风格中最糟糕的事情,它是我独自学习时即兴创作的。我要压制它,要求并保持标准。 (我在任何地方都找不到这个。)

提前致谢。

最佳答案

你可以去:

T dummy;
if ( !ptr )
ptr = &dummy;

开始;然后您可以稍后安全地编写 *ptr = whatever; 而无需空检查。

如果 ptr 的原始值很重要,您可以调用参数 orig_ptr 或其他东西。

关于c++ - 如果不为空,则为指针赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25066843/

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