c 中的内联函数
inline functions in c
我有用于对数组进行排序的内联 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 交换函数 但在编译时它给出了错误 该交换引用未定义。 通过删除它的工作交换; 代码有什么问题
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
,它不相关并会导致您的问题。如果编译器可以优化它,它会内联它,否则它只是你给编译器的一个建议,仅此而已。