我看到很多人在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) 这是我的代码和我的操作,我想一步一步调试我的代码(下面的代码只是一个例子) 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)