Document of c-modernization-kit (calc) 1.0.0

Loading...
Searching...
No Matches
shared-and-static-calc.c
Go to the documentation of this file.
1
17
18#include <libcalc.h>
19#include <libcalcbase.h>
20#include <console-util.h>
21#include <stdio.h>
22#include <stdlib.h>
23
42 int main(int argc, char *argv[])
43{
44 console_init();
45
46 if (argc != 4)
47 {
48 fprintf(stderr, "Usage: %s <arg1> <arg2> <arg3>\n", argv[0]);
49 console_dispose();
50 return 1;
51 }
52
53 if (argv[2][0] == 0x00 || argv[2][1] != 0x00)
54 {
55 fprintf(stderr, "Usage: %s <arg1> <arg2> <arg3>\n", argv[0]);
56 console_dispose();
57 return 1;
58 }
59
60 int arg1 = atoi(argv[1]);
61 int arg3 = atoi(argv[3]);
62
63 switch (argv[2][0])
64 {
65 case '+':
66 {
67 int result_shared;
68 if (calcHandler(CALC_KIND_ADD, arg1, arg3, &result_shared) != 0)
69 {
70 fprintf(stderr, "Error: calcHandler failed\n");
71 console_dispose();
72 return 1;
73 }
74 printf("result_shared: %d\n", result_shared);
75
76 int result_static;
77 if (add(arg1, arg3, &result_static) != 0)
78 {
79 fprintf(stderr, "Error: add failed\n");
80 console_dispose();
81 return 1;
82 }
83 printf("result_static: %d\n", result_static);
84
85 break;
86 }
87 case '-':
88 {
89 int result_shared;
90 if (calcHandler(CALC_KIND_SUBTRACT, arg1, arg3, &result_shared) != 0)
91 {
92 fprintf(stderr, "Error: calcHandler failed\n");
93 console_dispose();
94 return 1;
95 }
96 printf("result_shared: %d\n", result_shared);
97
98 int result_static;
99 if (subtract(arg1, arg3, &result_static) != 0)
100 {
101 fprintf(stderr, "Error: subtract failed\n");
102 console_dispose();
103 return 1;
104 }
105 printf("result_static: %d\n", result_static);
106
107 break;
108 }
109 case 'x':
110 {
111 int result_shared;
112 if (calcHandler(CALC_KIND_MULTIPLY, arg1, arg3, &result_shared) != 0)
113 {
114 fprintf(stderr, "Error: calcHandler failed\n");
115 console_dispose();
116 return 1;
117 }
118 printf("result_shared: %d\n", result_shared);
119
120 int result_static;
121 if (multiply(arg1, arg3, &result_static) != 0)
122 {
123 fprintf(stderr, "Error: multiply failed\n");
124 console_dispose();
125 return 1;
126 }
127 printf("result_static: %d\n", result_static);
128
129 break;
130 }
131 case '/':
132 {
133 int result_shared;
134 if (calcHandler(CALC_KIND_DIVIDE, arg1, arg3, &result_shared) != 0)
135 {
136 fprintf(stderr, "Error: calcHandler failed\n");
137 console_dispose();
138 return 1;
139 }
140 printf("result_shared: %d\n", result_shared);
141
142 int result_static;
143 if (divide(arg1, arg3, &result_static) != 0)
144 {
145 fprintf(stderr, "Error: divide failed\n");
146 console_dispose();
147 return 1;
148 }
149 printf("result_static: %d\n", result_static);
150
151 break;
152 }
153 default:
154 fprintf(stderr, "Usage: %s <arg1> <arg2> <arg3>\n", argv[0]);
155 console_dispose();
156 return 1;
157 break;
158 }
159
160 console_dispose();
161 return 0;
162}
libcalc.h
計算ライブラリ (動的リンク用) のヘッダーファイル。
calcHandler
CALC_EXPORT int CALC_API calcHandler(const int kind, const int a, const int b, int *result)
指定された演算種別に基づいて計算を実行します。
Definition calcHandler.c:21
CALC_KIND_MULTIPLY
#define CALC_KIND_MULTIPLY
乗算の演算種別を表す定数。
Definition libcalc_const.h:22
CALC_KIND_SUBTRACT
#define CALC_KIND_SUBTRACT
減算の演算種別を表す定数。
Definition libcalc_const.h:21
CALC_KIND_DIVIDE
#define CALC_KIND_DIVIDE
除算の演算種別を表す定数。
Definition libcalc_const.h:23
CALC_KIND_ADD
#define CALC_KIND_ADD
加算の演算種別を表す定数。
Definition libcalc_const.h:20
libcalcbase.h
計算ライブラリ (静的リンク用) のヘッダーファイル。
subtract
int subtract(const int a, const int b, int *result)
2 つの整数を減算します。
Definition subtract.c:20
divide
int divide(const int a, const int b, int *result)
2 つの整数を除算します。
Definition divide.c:20
multiply
int multiply(const int a, const int b, int *result)
2 つの整数を乗算します。
Definition multiply.c:20
add
int add(const int a, const int b, int *result)
2 つの整数を加算します。
Definition add.c:20
main
int main(int argc, char *argv[])
プログラムのエントリーポイント。
Definition shared-and-static-calc.c:42