请查看我的代码:
#include <stdio.h>
#include <stdbool.h>
void checksign(int, int);
bool samesign(int, int);
int main() {
printf("Check same sign\n\n");
int a = 27952, b = -68643, c = 0;
checksign(a, a);
checksign(a, b);
checksign(a, c);
checksign(b, b);
checksign(b, c);
checksign(c, c);
return 0;
}
void checksign(int a, int b) {
printf("%d and %d have ", a, b);
if (!samesign(a, b)) {
printf("not ");
}
printf("the same sign.\n");
}
bool samesign(int a, int b) {
return (a | 0) == (b | 0);
}
我在这里阅读了相关主题,这些主题都显示出合理的解决方案。 我真的无法理解为什么/如何使用同一个函数(至少在我的64位Linux上,使用GCC 7.3.0编译)。 任何帮助或见解都表示赞赏。