小编52c*_*der的帖子

qsort功能比较困惑我

我看到很多人在qsort比较器函数中使用减法.我认为这是错误的,因为在处理这些数字时:int nums[]={-2147483648,1,2,3}; INT_MIN = -2147483648;

int compare (const void * a, const void * b)
{
  return ( *(int*)a - *(int*)b );
}
Run Code Online (Sandbox Code Playgroud)

我写了这个函数来测试:

#include <stdio.h>
#include <limits.h>

int compare (const void * a, const void * b)
{
    return ( *(int*)a - *(int*)b );
}

int main(void)
{
    int a = 1;
    int b = INT_MIN;
    printf("%d %d\n", a,b);
    printf("%d\n",compare((void *)&a,(void *)&b));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是:

1 -2147483648
-2147483647
Run Code Online (Sandbox Code Playgroud)

a > b所以输出应该是积极的.我看过很多书写得像这样.我认为这是错的; 处理int类型时应该这样写:

int …
Run Code Online (Sandbox Code Playgroud)

c qsort

7
推荐指数
1
解决办法
348
查看次数

在未来的共享库加载时使断点挂起?(y 或 [n])

这是我的代码和我的操作,我想一步一步调试我的代码(下面的代码只是一个例子) main.cpp

#include <iostream>
#include <string>

extern int addd(int ,int);

int main()
{
    std::string str = "Hello";

    std::cout << str << std::endl;

    int a = 10,b = 20;

    std::cout << a + b << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

操作文件

int add(int a,int b)
{
    return a + b;
}
Run Code Online (Sandbox Code Playgroud)

我使用模板 makefile 表单makefiletemplate只是修改一些不常见的东西,当我发出 g++ 命令时:

[root@centos-linux-10 52coder]# make
g++ -std=c++11 -g   -O3 -Wall -Wextra      -c opr.cpp -o opr.o
g++ -std=c++11 -g   -O3 -Wall -Wextra      -c main.cpp -o main.o
g++ …
Run Code Online (Sandbox Code Playgroud)

c++ linux gdb

-3
推荐指数
1
解决办法
1840
查看次数

标签 统计

c ×1

c++ ×1

gdb ×1

linux ×1

qsort ×1