“编程珍珠”:qsort 的冲突类型

Posted

技术标签:

【中文标题】“编程珍珠”:qsort 的冲突类型【英文标题】:"Programming Pearls": conflicting types for qsort 【发布时间】:2016-11-04 11:17:54 【问题描述】:

这是1.6_1栏Programming Pearls的解决方案:

> #include <stdio.h>

int intcomp(int *x, int *y)

    return *x-*y;

int a[1000000];
int main(void) 
    // insert code here...
    int i,n=0;
    while (scanf("%d",&a[n])!=EOF) 
        n++;
    
    qsort(a,n,sizeof(a[0]),intcomp);
    for(i=0;i<n;i++)
    
        printf("%d\n",a[i]);
    
    return 0;

错误信息:

“qsort”的冲突类型

你能告诉我为什么会这样吗?不是默认定义的吗?

我的编译器是 Xcode (MacOS)。

【问题讨论】:

不清楚上面的源代码是从书上打出来的,还是网上找的。上面的代码与这个github copy of p1c1quicksort有一些不同,即上面的代码缺少#include &lt;stdlib.h&gt; 代码是从书上打出来的,但是书上的代码没有头文件的代码。所以我加了这个,但是我漏掉了另一个,就像你给的代码一样。它工作。谢谢 【参考方案1】:

评论(原来是正确的猜测)提升为回答:

不清楚上面的源代码是从书中输入的,还是在网上找到的。上面的代码与this github copy of p1c1quicksort有一些不同,即上面的代码没有了:

#include <stdlib.h>. 

【讨论】:

谢谢您,但很抱歉,由于声誉不佳,我无法为您投票。 @zyMacro,将问题标记为“已回答”不需要信誉,单击答案左侧的空心复选标记,使其变为绿色,此时你将获得 +2 rep。更多详情,请参阅How does accepting an answer work?。

以上是关于“编程珍珠”:qsort 的冲突类型的主要内容,如果未能解决你的问题,请参考以下文章

为啥此示例在字符串比较中使用空填充? “编程珍珠”:一串串珍珠

编程珍珠中的词频

来自编程珍珠的示例

“编程珍珠”:搜索

使用更多空间编程珍珠的恒定时间初始化 - 第 1 列

旋转序列的两种算法的速度。 (摘自《编程珍珠》一书)