c - 这段代码是否尽可能高效?

标签 c arrays

我编写了一个函数,如果特定长度的数组中的所有元素都是正数,它会返回一个伪 bool 值。我觉得这可能效率低下:

int all_positive(int a[], unsigned int alen)
{
for(int i = 0 ; i < alen ; i++)
    {
        if(a[i] < 0)
            {
                return 0;
                break;
            }
        else if(i == alen - 1)
            {
                return 1;
            }
    }
}

最佳答案

您可以清理它并使其更短:

int all_positive(int a[], unsigned int alen)
{
    for(int i = 0 ; i < alen ; i++)
        if(a[i] < 0)
                return 0;
    return 1;
}

我不确定这是否会更快。您的优化器可能也能做到这一点。

关于c - 这段代码是否尽可能高效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43442608/

相关文章:

c - 在C中将函数分离到不同的文件中

c - 使用 atof() 将一组字符转换为 float

克隆和 CLONE_CHILD_CLEARTID 标志

javascript - 对 JavaScript 集合中的对象进行排序

c - 是否存在搜索 unix $PATH 变量并在某个文件存在时返回 true 的函数?

c - 使用 if 语句打印数组中的最后一个元素

javascript - 奇怪的 jQuery 错误消息

c - 为什么使用 snprintf 会出现运行时错误?

java - 两类总和

javascript - 如何在返回值时不中断函数/循环(Js)