From d54baf28e4e73d37fa98786331d84506b11489fc Mon Sep 17 00:00:00 2001
From: Sohyun Lee <sh119@ajou.ac.kr>
Date: Mon, 17 Jan 2022 16:34:27 +0900
Subject: [PATCH] lec08

---
 lec08/hello.c     |  31 +++++++++++++++++++++++++++++++
 lec08/hello.o     | Bin 0 -> 2408 bytes
 lec08/hello.s     |   1 +
 lec08/hellocpp.c  |  30 ++++++++++++++++++++++++++++++
 lec08/hellocpp.o  | Bin 0 -> 688 bytes
 lec08/hellocpp.s  |   1 +
 lec08/macrotest.c |  14 ++++++++++++++
 7 files changed, 77 insertions(+)
 create mode 100644 lec08/hello.c
 create mode 100644 lec08/hello.o
 create mode 100644 lec08/hello.s
 create mode 100644 lec08/hellocpp.c
 create mode 100644 lec08/hellocpp.o
 create mode 100644 lec08/hellocpp.s
 create mode 100644 lec08/macrotest.c

diff --git a/lec08/hello.c b/lec08/hello.c
new file mode 100644
index 0000000..a118c5d
--- /dev/null
+++ b/lec08/hello.c
@@ -0,0 +1,31 @@
+#include <stdio.h>
+
+int add(int *a, int *b, int *c)
+{
+	*c =  *a + *b;
+}
+
+int main()
+{
+	int a = 100;
+	int b = 200;
+	int c = 999;
+	// int * == long long
+
+	fprintf(stdout, "%d : %lld %llx\n", a,(long long) &a,(long long) &a);
+	fprintf(stdout, "%d : %lld %llx\n", b, (long long)&b, (long long)&b);
+	add(&a, &b ,&c);
+	//c = a+b
+	fprintf(stdout, "%s %d : %d\n",__FILE__, __LINE__,c);
+	fprintf(stdout, "%s %d : %d\n",__FILE__, __LINE__,c);
+	fprintf(stdout, "%s %d : %d\n",__FILE__, __LINE__,c);
+#define ERR_DATA 2000
+#if ERR_DATA  > 1000
+#error 1024
+#else
+#warning ERR_DATA
+#endif
+	fprintf(stdout, "%s %d : %d",__FILE__, __LINE__,c);
+
+
+}
diff --git a/lec08/hello.o b/lec08/hello.o
new file mode 100644
index 0000000000000000000000000000000000000000..fb73646a9b4f3fb332b497cd582ffb9c07749bec
GIT binary patch
literal 2408
zcmb<-^>JfjWMqH=Mg}_u1P><4z@Wi~U^{@B4h*~uJPe^8oliYFYkzojmVWT)41M9z
z?fRoz07QB;A7JTbU_9i}?fRlqU_$I+u+ru?3Mn4lEUFp|3=AHfu0IS99Cv+@!oa|A
z-1W@~kl1n856_ty7`j15v4Sk}=q-KW(d+xdv-5*TuPIoh^Y{)B{Q^XEhraRXhADjG
z(d+vLheD6u&<`MKk6zao9-ZerI*)_(dvu3>Ko|g0@d2L!&4)NVdR;$wG#}vb=q~->
z(QONIglFdkkIsW0ou8mCL^uy@Yx5xis3rlTG=a5ybl3h!@i4Xl2UQ6x*s&)MtEMPe
zDX8Y;q=1MDE(Qj7XJ;z~jnJghypmD{b3Ic%16|`%Fwd~g&_d6^L=z$kawY=<g9wyn
ztO{aatPo(7=3(cUz{tQL!vMh`X>AbU$S2Uo<jl*K#>375m9qhfGcYi?f)WT!p4ovB
zq5>+3MuC*FFns)vCJg2>V@+uc49pD7V0m<cnSlje2+U_@0LMR=jZ82zup@KfY-R?K
zkKkN5gP8#-kwZl}85kIZklYCl8wLgjUZ^;X4-ONs7z2X<R4+0m$$(v4ABVU(4snKz
z)SR4ry<~>OloW>C#LPT~;*ym7(h`PvcOQQzN1u3qH@9HdkoXWsCm+{%hO~mB%)F8`
zhWPm6lEmcf_~eZ2__V~#9ELck<Cqv27`Pc282<c+fC40OP^iMhYoX$x7y$VlCf*Je
zM>l6Ck~p$C%b?=u=In)vgUkViIm~=enE;Xki6gu77D$kRfdM3rZ2ohoIJ)^vpo9oj
zk8F+*k~p$CGEi}JbIhUQAbXL`aYqtIHYX4&j&4pCk~kky_$xr&4>BKwp<D(?nG5kR
zNF0{#81#xOb4wDF81#xuiXe0bj8&AHlc-mcT2aEFmy%eL$e@>0T+E<Xln>z~=jZ08
z=9Mt$<>i;8>bd)c>VlI9gC1C0YDRooQDSZ?%zjE~kiS4)M$cg|e-(fvkt{*uGDtHp
zfO9`gJxu8jXi+f(s)37v0i0W5Ia~s&Pz@>$RSp$pVAufF2N!@c(1mpv7{H|lx%v&E
z_JiUMY6X~r*^gdkpxbW=)o%dSg&+<<6>1@bz$~aRI4nQ{PEh?IHZpz%Q-~~xMQu1#
z4Bh=7p!y@w^uxj*CLDw#{w9Dj3j+fK%wM4R1L*}}kX~5)fviEd8zk=m70duBfR<&T
s@&jEzNDMvhK>9a81wB9<Bn&kUE+WVPs+ZtgIO71+{fTf92m@U|01rQPFaQ7m

literal 0
HcmV?d00001

diff --git a/lec08/hello.s b/lec08/hello.s
new file mode 100644
index 0000000..8905c76
--- /dev/null
+++ b/lec08/hello.s
@@ -0,0 +1 @@
+	.file	"hello.c"
diff --git a/lec08/hellocpp.c b/lec08/hellocpp.c
new file mode 100644
index 0000000..62c47ba
--- /dev/null
+++ b/lec08/hellocpp.c
@@ -0,0 +1,30 @@
+# 1 "hello.c"
+# 1 "<built-in>"
+# 1 "<command-line>"
+# 31 "<command-line>"
+# 1 "/usr/include/stdc-predef.h" 1 3 4
+# 32 "<command-line>" 2
+# 1 "hello.c"
+
+
+int add(int *a, int *b, int *c)
+{
+ *c = *a + *b;
+}
+
+int main()
+{
+ const int a = 100;
+ int b = 200;
+ long long c = 999;
+
+
+ fprintf(stdout, "%d : %lld %llx\n", a, &a, &a);
+ fprintf(stdout, "%d : %lld %llx\n", b, &b, &b);
+ add(&a, &b ,&c);
+
+ fprintf(stdout, "%d : %lld %llx\n", c, &c, &c);
+ fprintf(stdout, "%d : %lld %llx\n", c, &c+1, &c+1);
+ fprintf(stdout, "%d : %lld %llx\n", c, &c+2, &c+2);
+
+}
diff --git a/lec08/hellocpp.o b/lec08/hellocpp.o
new file mode 100644
index 0000000000000000000000000000000000000000..eaa376831f288714a2c00d1ab029a86dd97db229
GIT binary patch
literal 688
zcmb<-^>JfjWMqH=Mg}_u1P><4!0-XVWN-kp9T?ad*uX4o1jq~)hL8WT$uVQKfq{XU
zfeD*(24)6kO!17=oSgjRf&#r{1_r(2%G{E~BnG|Wk|GG50b`Y<R+KR4r6iUlGUz20
z7h{@3qKGsD1K9QGK8J(}reUCPKo(Vm>PPnxvHH~+7#KJhKw*V!Dg!i5P{lwzbo)Vk
zY@rOZzXGI*fq{V)ia~aPgd{)&0|Nsm7P~=GJ3s^j0|O6~hEX8<U~CXAh(rGokR$^G
LgASC2QRw;s5n>xb

literal 0
HcmV?d00001

diff --git a/lec08/hellocpp.s b/lec08/hellocpp.s
new file mode 100644
index 0000000..6f73298
--- /dev/null
+++ b/lec08/hellocpp.s
@@ -0,0 +1 @@
+	.file	"hellocpp.c"
diff --git a/lec08/macrotest.c b/lec08/macrotest.c
new file mode 100644
index 0000000..39a86af
--- /dev/null
+++ b/lec08/macrotest.c
@@ -0,0 +1,14 @@
+#define HE HI
+#define LLO _THERE
+#define HELLO "HI THERE"
+#define CAT(a,b) a##b
+#define XCAT(a,b) CAT(a,b)
+#define CALL(fn) fn(HE,LLO)
+CAT(HE,LLO) // "HI THERE", because concatenation occurs before normal expansion
+XCAT(HE,LLO) // HI_THERE, because the tokens originating from parameters ("HE" and "LLO") are expanded first
+CALL(CAT) // "HI THERE", because parameters are expanded first
+
+#define sq(a) a*a
+sq(B)
+#define sq(a) aaa
+sq(C)
-- 
GitLab