c - c 中的内联函数

标签 c compiler-errors inline

<分区>

我有用于对数组排序的内联 C 交换函数 但在编译时它给出了错误 该交换引用未定义。 通过删除它的工作交换; 代码有什么问题

inline void swap(int* a, int* b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}

void sort(int ar[])
{
    int length = sizeof(ar) / sizeof(int);
    for(int i = 0; i < length; i++)
    {
        for(int j = i; j < length; j++)
        {
            if(ar[j] < ar[i])
            {
                swap(&ar[j], &ar[i]);
            }
        }
    }
}

最佳答案

int length = sizeof(ar) / sizeof(int);

传递数组的长度而不是尝试做某事(那是行不通的)。

删除 inline,它不相关并会导致您的问题。如果编译器可以优化它,它将内联它,否则它只是你给编译器的一个建议,仅此而已。

关于c - c 中的内联函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52888507/

相关文章:

visual-c++ - vc++ 6.0 中的 long long int 编译错误

Delphi XE4 在访问 'object' 的通用列表项时给出 E2036

c# - 为什么这个 F# 代码这么慢?

C++内联类方法导致 undefined reference

c++ - 我是否必须在类主体之外定义纯虚拟析构函数?

c - 如何在c中定期初始化变量

c - 包含结构的结构与包含指针的结构

c - 如何使用 Plain C 在 Linux 上使用 GigE 相机获取图像

c - 指向结构数组指针数组的二维数组

c++ - 从同一类中的另一个构造函数调用一个构造函数