#include <stdio.h>
#include <stdbool.h>
int main()
{
int a, b, result;
bool bUndefined = false;
scanf("%d", &a);
scanf("%d", &b);
int calc[5] = { 43,45,42,47,37 };
for (int i = 0; i < sizeof(calc) / sizeof(int); i++) {
if (calc[i] == 43)
result = a + b;
else if (calc[i] == 45)
result = a - b;
else if (calc[i] == 42)
result = a * b;
else if (calc[i] == 47) {
if (b == 0)
bUndefined = true;
else
result = a / b;
}
else if (calc[i] == 37){
if (b == 0)
bUndefined = true;
else
result = a % b;
}
if(bUndefined)
printf("%d %c %d = %s\n", a, calc[i], b, "undefined");
else
printf("%d %c %d = %d\n", a, calc[i], b, result);
}
return 0;
}
int add(int a, int b) {
return a + b;
};
int sub(int a, int b) {
return a - b;
}
int mul(int a, int b) {
return a * b;
}
int div(int a, int b) {
if (b == 0)
return -1;
else
return a / b;
}
int remainderr(int a, int b) {
if (b == 0)
return -1;
else
return a % b;
}
#include <stdio.h>
int add(int a, int b);
int sub(int a, int b);
int mul(int a, int b);
int div(int a, int b);
int remainderr(int a, int b);
int main()
{
int a, b;
scanf("%d", &a);
scanf("%d", &b);
printf("%d + %d = %d\n", a, b, add(a, b));
printf("%d - %d = %d\n", a, b, sub(a, b));
printf("%d * %d = %d\n", a, b, mul(a, b));
if (div(a, b)==-1)
printf("%d / %d = %s\n", a, b, "undefined");
else
printf("%d / %d = %d\n", a, b, div(a, b));
if (remainder(a, b)==-1)
printf("%d %% %d = %s\n", a, b, "undefined");
else
printf("%d %% %d = %d\n", a, b, remainder(a, b));
return 0;
}
gdb calc2
b add
(gdb) r
p variable
(gdb) p a
=> No symbol "a" in current context(gdb) info locals
=> No symbol table info available.gcc -ggdb -O0 -o calc2 calc2.c add.c sub.c mul.c div.c remainderr.c
=> 처음에 컴파일 할 때 (Makefile에) 옵션을 넣어준다-ggdb
: option for adding the debug info-O0
: disable all the optimization-o
: provide a name to the binary other than default(a.out/a.exe)(gdb) b add
=> No symbol table is loaded. Use the "file" command.(gdb) file calc2
(gdb) b add
n
s
finish
c
GDB 명령어 정리 >> https://mintnlatte.tistory.com/581