From b70f02722e9a78a07ff178dc9831a4614a83bff1 Mon Sep 17 00:00:00 2001 From: Sohyun Lee <sh119@ajou.ac.kr> Date: Thu, 13 Jan 2022 16:26:41 +0900 Subject: [PATCH] lec07 --- lec07/fnpointer.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++ lec07/func.c | 10 ++++++++ lec07/func.h | 11 +++++++++ lec07/func.o | Bin 0 -> 1360 bytes lec07/main.c | 9 ++++++++ lec07/main.o | Bin 0 -> 1768 bytes 6 files changed, 87 insertions(+) create mode 100644 lec07/fnpointer.c create mode 100644 lec07/func.c create mode 100644 lec07/func.h create mode 100644 lec07/func.o create mode 100644 lec07/main.c create mode 100644 lec07/main.o diff --git a/lec07/fnpointer.c b/lec07/fnpointer.c new file mode 100644 index 0000000..0bfb182 --- /dev/null +++ b/lec07/fnpointer.c @@ -0,0 +1,57 @@ +#include<stdio.h> + +void add(int *a, int *b, int *c) +{ *c = *a + *b;} + +void sub(int *a, int *b, int *c) +{ *c = *a - *b;} + +void div(int *a, int *b, int *c) +{ *c = (*a) / (*b); } + +void mul(int *a, int *b, int *c) +{ *c = (*a) * (*b); } + +int main() +{ + int a = 100; + int b = 200; + int c = 9999; + char ch; + int op = 0; + + scanf("%d %c %d", &a, &ch, &b); + // ch = + :add, -:sub, *:mul, /:div + switch(ch) + { + case '+': + op = 0; + break; + case '-': + op = 1; + break; + case '*': + op = 2; + break; + case '/': + op = 3; + break; + } + + + + void (*fp[4])(int *, int *, int *) = {add, sub, mul, div}; // 함수의 포인터 + //int const *p = &a; + //int * const q = &a; + fp[op](&a, &b, &c); + fprintf(stdout, "%d %c %d = %d\n",a, ch, b, c); + + fprintf(stdout, "a,b,c:%d %d %d\n", a, b, c); + fp[1](&a,&b,&c); + fprintf(stdout, "a,b,c:%d %d %d\n", a, b, c); + fp[2](&a,&b,&c); + fprintf(stdout, "a,b,c:%d %d %d\n", a, b, c); + fp[3](&a,&b,&c); + fprintf(stdout, "a,b,c:%d %d %d\n", a, b, c); + +} diff --git a/lec07/func.c b/lec07/func.c new file mode 100644 index 0000000..4ca0d61 --- /dev/null +++ b/lec07/func.c @@ -0,0 +1,10 @@ +#include "func.h" + +int func1(int a) +{ + return (a*10); +} +int func2(int a) +{ + return DF(a+1) *20; +} diff --git a/lec07/func.h b/lec07/func.h new file mode 100644 index 0000000..04ac8f7 --- /dev/null +++ b/lec07/func.h @@ -0,0 +1,11 @@ + + +#if FUNCTION_NEGATIVE == 1 +#define DF(a) (-(a)*(a)) +#else +#define DF(a) ((a)*(a)) +#endif + +extern int func1(int x); +extern int func2(int x); + diff --git a/lec07/func.o b/lec07/func.o new file mode 100644 index 0000000000000000000000000000000000000000..904028507d9d5c752f1f3f2d4eb7dae21721accf GIT binary patch literal 1360 zcmb<-^>JfjWMqH=Mg}_u1P><4z%YRc!FB*M9T>P7xEMk`I-hpd{^<_=(|O_G1181` zj0a*5!vtOb^ae0?yZ&iDz{tP;0#w1l2TZYt8Qh(ntrRpulS=bSN)^oYO!W+OjZ48i z!#YC?Jp&U>h$z@91_lNZD1)&oh=H*}fKi%<onrzc1A`0$1cRhSL4+fpKpT@YFIxZ) zI|o$G1|-hFz@P-8Ve+vMd5{n`3<?7lhL8WT$uVOMAqEC!2Bbhj(#XufjKo7QnHg9S z93&Pq0~-<#!DMD&L2#ffkROGR+yf2+1_lN`1_lO@IE)YWJ4jDjX<o8kG6RS*1d~P} zQ3eGt$pH2NvM(TUjSz>K$DmhSnOl;W#GqGPQUswhV62kViV_CBl*E!m2EC->Vg|kB z{M_8syb=bzy!?_>J$JuQ-QtqO<ZK4LqSTy3z0{2Ow4%h^RHzFmqof%az@dR2f-rxW zqZtp1XJjEosDAVqD@Rs@#75Vz&cMI`iW746>p<-{K(YhGgxRkJ;viv|{V>`Tsvk)S zn7I&4ViGWYFc~kXe&jR&l3M{H7#J8LpfrpE`4z?n(XI>(;8Y3=Z;%)Wb3hG*`3s~E z6h|N$BrgFXaM%r&f;#jAn8U!p2@Pj-{UCAlum@@R0M!pGM?hjA3>5}3!B~(1l#jto R6v6`P{ty&VNLoV{0suwpUpoK* literal 0 HcmV?d00001 diff --git a/lec07/main.c b/lec07/main.c new file mode 100644 index 0000000..d9dbaa2 --- /dev/null +++ b/lec07/main.c @@ -0,0 +1,9 @@ +#include <stdio.h> +#define FUNCTION_NEGATIVE 1 +#include "func.h" + +int main() +{ + printf("Func1 %d %d\n", func1(100), DF(10)); + printf("Func2 %d %d\n", func2(100), DF(10)); +} diff --git a/lec07/main.o b/lec07/main.o new file mode 100644 index 0000000000000000000000000000000000000000..3fbad033db377c115f11b357b216583c9924ece3 GIT binary patch literal 1768 zcmb<-^>JfjWMqH=Mg}_u1P><4z_5ZD!FB*M9T<2Sco;%GI-l-OVPIf*0TSFb=l}oz zoyR<SZ9%*pAOb8-SOr*Z>|wXkyktWK)f5HQ6fOo3#|Xw@aCdgLQqTxZD$Oe?RWR2x z)icmFE(P-p>kKXQ3`{g3q998d7(^fx17lSX17n2%qcjgY#{@<O1{nqj21)ya2uD7F zHYR6YHYP6~b`FpLb_@y=7KV@ivB@%H4KW4=W(K4{L(<61z=Fg>Fqs)x5ga5IGXpyk z55Z(+!0upX1~!BuC<~-g2+5sbzcVl}@G>wk2td^!Q_48RHF1a=;1FlXP0Y;GO9oR6 z@$NqUPL4kD{%&r;t|9Ruj!r(V@eFC8IA<s*%FHWC19OZR7#O&qjsb-fHv<F1pZ^db z0TpLrU;u{}Ok4>n4pPs9q+SO}9OPG+dMl_n%p6WA-vvseo1*{~2dM{PD3^gjuedU| zBr%CWuehWLLTA8OMX5Q7dL^k9B@B8gi6w~)dP&8_40=WR5KeM_Zf<H`34>l<eo3mH zyI-hoaY<rwHiI5mTWUspT2W$dD%>6l86fwA(lC0;faGNc23UH4Sp!lFV}odE1_p4d zg{cRLf$$7yU`zmUpz#LM3rcSwAy|B=F))BrA9{}H2PwjWL1rKegW?fnCb{|zq4q<a z3pW~OzZ6^q!a%p*5~?4R&LJuw<Vpy|parF26ih#ic7p1M$;0T&Fa{b8(+3j{hw4Xn z{|%@D3n&evKw$-AgXka}@uvX|P*^;H@*PMo2!r&j*sw;Loc0Fq!}U<iQHpu7so wOX&JRVo<9<+Tb_=YN#1p1j2wC2jMU<FbFb$%2PNO&TxPlng|zxFwpe_0A=Et>Hq)$ literal 0 HcmV?d00001 -- GitLab