๋ชฉ๋ก๐ฉ๐ป IoT (Embedded)/C์ธ์ด (8)
๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
โ๏ธ ContactBook โ๏ธ ์ ํ๋ฒํธ๋ถ ํ๋ก๊ทธ๋จ์ ๊ฐ์๋ฅผ ๋ง๋ค๊ณ ํ๋ฉด๊ณผ ๋ฉ๋ด์ ๊ตฌ์ฑํ๋ฉฐ ๊ธฐ๋ฅ์ ํ์ฅํด๋ณด์!!! ๐๏ธ 2์กฐ์ ๊ท์น 1๏ธโฃ commit message โ[Feat] : ๊ธฐ๋ฅ ์ถ๊ฐ ๐[Chore] : ์คํ ํ์ผ ๋ฐ ์์ ์ ๐ง[Refactor] : ์ฝ๋ ์์ (๋ฆฌํฉํ ๋ง) ๐[Memo] : ์ฃผ์ ์์ ๐จ[Alert] : ๊ธฐ๋ฅ ์ค๋ฅ ์โ 2๏ธโฃ ๊นํ๋ธ push ์ ๐จ ์๋ฆฌ๊ธฐ (์ถฉ๋ ๋ฐ์!! Pull ํ๊ณ ์์ ํ์ธ์!!) 3๏ธโฃ 1์ผ 1 issue ์์ฑ 4๏ธโฃ dev branch ์ 1์ฐจ Merge, main branch ์ ์ต์ข Merge โ๏ธ ํ๋ก์ ํธ โ๏ธ ๐จ๐ป 1. ํ๋ก์ ํธ ๊ฐํธ ์ฐจํธ ContactBook ๊ฐ์์ง๊ธฐ (September 7, 2023) ContactBook ๊ฐ์ ๊ตฌ์ฒดํํ๊ธฐ ..
๐ printf() ํจ์ : ํ์ ๋ฌธ์์ด์ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ ํจ์ โ ํ์ ๋ฌธ์ : ๋ฐ์ดํฐ๋ฅผ ์ /์ถ๋ ฅ ํ ๋, ์ปดํจํฐ๊ฐ ๊ทธ ํ์์ ์ธ์ํ ์ ์๋๋ก, ๋ฐ์ดํฐ์ ํด์์ ์ง์ํด์ฃผ๋ ๋ฌธ์ โ ๊ฐ๋ณ ์ธ์ : ํ์ ๋ฌธ์๊ฐ ๋ช ๊ฐ๋ ๋ค์ด์๋์ง์ ๋ฐ๋ผ ์ธ์ ์๊ฐ ๋ฌ๋ผ์ง๋ค โ ๋ฉ๋ชจ๋ฆฌ์ ๋ณํ ๋ฐฐ์ด๋ก ๋ฌธ์์ด ์ ์ฅ : ์๋ฃํ์ char๋ก ์ ์ธํ๊ณ Hello๋ผ๋ 5๊ธ์๋ฅผ ๋ฐฐ์ด์ ๋ฃ์ : ๋ฐฐ์ด ํฌ๊ธฐ๊ฐ 6์ธ ์ด์ ๋ ๋ฌธ์์ด์ ํญ์ NULL๋ฌธ์๋ฅผ ๋ง์ง๋ง์ ํฌํจ ํ๊ธฐ ๋๋ฌธ : ๋ฐฐ์ด๋ก ๋ฌธ์์ด์ ์ ์ฅํ๊ฒ ๋ ๊ฒฝ์ฐ ๊ตฌ์ฒด์ ์ผ๋ก ex) 1023๋ฒ์ง์ ์ ์ฅ์ด ๋๋ค ํฌ์ธํฐ๋ก ๋ฌธ์์ด ์ ์ฅ : ์๋ฃํ์ ๋์ผํ๊ฒ char ์ด์ง๋ง ํฌ๊ธฐ(size)๊ฐ ์๊ณ ๊ทธ๋ฅ ํฌ์ธํฐ์ ๋ฌธ์์ด์ ์ ์ฅ : Hello ๋ฌธ์์ด์ ์ฒซ ์ฃผ์๋ง ๊ธฐ์ตํ๊ณ ๋๋จธ์ง๋ฅผ ํด๊ฒฐ ํ๊ฒ ๋ค..
๐ ๋ฌธ์ ์ ์ถ๋ ฅ ํจ์ โ getchar() ํจ์ : ์ฌ์ฉ์๊ฐ ํค๋ณด๋๋ก ์ ๋ ฅํ ๋ฌธ์ ํน์ ๋ฌธ์์ด์์ ํ ๊ธ์๋ฅผ ์ฝ์ด์ ๋ฐํํ๋ ํจ์ : ํจ์๊ฐ ๋ฌธ์๋ฅผ ์ฝ์ด ์ค๋ ๊ณณ์ ์ด๋ค ๋ฉ๋ชจ๋ฆฌ์ธ๋ฐ ๋ณดํต ๊ทธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฒํผ(Buffer) โ putchar( ) ํจ์ : ๋ฌธ์๋ฅผ ๋ชจ๋ํฐ ํ๋ฉด์ ์ถ๋ ฅํ๋ ํจ์ // : ํต์ฌ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ ํจ์๋ค์ ์ ์ #include void main() { // getchar( ) ํจ์๊ฐ ํธ์ถ๋์์ ๋ // ํค๋ณด๋์ ๋ํ ์ ์ถ๋ ฅ ๋ฒํผ๊ฐ ๋น์ด ์๋ ์ํ char ch; ch = getchar(); // putchar( ) ๋ฌธ์๋ฅผ ๋ชจ๋ํฐ ํ๋ฉด์ ์ถ๋ ฅํ๋ ํจ์ putchar(ch); ch = getchar(); putchar(ch); ch = getchar(); putchar(ch); } // TES..
๐ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ๊ธฐ๋ณธ ์ด๋ก โ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ ๋ ์ง์คํฐ : CPU ๋ด๋ถ์ ์์ ๋ฉ๋ชจ๋ฆฌ๋ก, ํ๋ฐ์ฑ์ด๋ฉฐ ์๋๊ฐ ๊ฐ์ฅ ๋น ๋ฅด๊ณ , ๊ธฐ์ต ์ฉ๋์ด ๊ฐ์ฅ ์ ๋ค ์บ์ : L1, L2, L3 ์บ์๋ฅผ ์ง์นญํ๊ณ ํ๋ฐ์ฑ์ด๋ฉฐ, ์๋๊ฐ ๋น ๋ฅด๋ ๊ธฐ์ต ์ฉ๋์ด ์ ๋ค ์ฃผ๊ธฐ์ต์ฅ์น(๋ฉ๋ชจ๋ฆฌ) : RAM์ ๊ฐ๋ฆฌํค๊ณ ํ๋ฐ์ฑ์ด๋ฉฐ, ์๋์ ๊ธฐ์ต ์ฉ๋์ ๋ณดํต์ด๋ค ๋ณด์กฐ๊ธฐ์ต์ฅ์น(๋์คํฌ) : HDD, SDD๋ฅผ ์ผ์ปฌ์ผ๋ฉฐ ๋นํ๋ฐ์ฑ์ด๋ค. ์๋๋ ๋ฎ์ผ๋ฉฐ ๊ธฐ์ต ์ฉ๋์ด ๋ง๋ค โ ๋ฉ๋ชจ๋ฆฌ - ์ฝ๋(code) ์์ญ ๋ฉ๋ชจ๋ฆฌ์ ์ฝ๋(code) ์์ญ์ ์คํํ ํ๋ก๊ทธ๋จ์ ์ฝ๋๊ฐ ์ ์ฅ๋๋ ์์ญ CPU๋ ์ฝ๋ ์์ญ์ ์ ์ฅ๋ ๋ช ๋ น์ด๋ฅผ ํ๋์ฉ ๊ฐ์ ธ๊ฐ์ ์ฒ๋ฆฌ - ๋ฐ์ดํฐ(data) ์์ญ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ(data) ์์ญ์ ํ๋ก๊ทธ๋จ์ ์ ์ญ ๋ณ์์ ์ ์ (static) ๋ณ์๊ฐ ์ ์ฅ๋๋ ์์ญ ํ..
๐ char [], char * ์ ์ฐจ์ด์ // : ํต์ฌ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ ํจ์๋ค์ ์ ์ #include // #4. ๋จ์ ๋์ ์ฐ์ฐ์ int main(void) { // ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ์ ์ฅ (๋ณ์ ์ฑํฅ์ ๋ฌธ์์ด, ๊ฐ ๋ณํ ๊ฐ๋ฅ) char *szName[3]; szName[0] = "HelloWorld"; szName[1] = "C Programming"; szName[2] = "Studying"; for (int i = 0; i %s\n", i, szName[i]); printf("szName[%d] -> %d\n", i, &szName[i]); } // charํ ๋ฐฐ์ด์ ๊ฐ๊ฐ์ ๋ฌธ์๊ฐ ๊ทธ๋๋ก ์ ์ฅ (์์ ์ฑํฅ์ ๋ฌธ์์ด, ๊ฐ ๋ณํ ๋ถ๊ฐ๋ฅ) cha..
๐ ํฌ์ธํฐ : & ํฌ์ธํฐ ์ฐ์ฐ์๋ ๋ณ์๋ช ์์ ๋ถ์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ : * ๊ธฐํธ๋ ํฌ์ธํฐ ์ฐ์ฐ์ : ๋ค๋ฅธ ๋ณ์์ ์ฃผ์๊ฐ์ ์ ์ฅํ๋ ์ฃผ์ ์ ์ฅ์ฉ ๋ณ์ : ๋ชจ๋ ๋ณ์๋ ๋ณ์๋ช ์ด์ธ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์ ๐ ๋ณ์ : ๋ฉ๋ชจ๋ฆฌ์ ๋ถ์ฌ์ง ์ด๋ฆ : ์๋ฃํ์ ์ผ์ ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ํ๋ ๋ฐฉ๋ฒ : ๋ณ์๋ ํด์ํ ๋์ ๋ฉ๋ชจ๋ฆฌ์ ๋ถ์ธ ์ด๋ฆ : ํจ์ ๋ด๋ถ์์ ๋ณ์๋ฅผ ์ ์ธํ ๊ฒฝ์ฐ ๋ชจ๋ ์คํ(Stack) ์์ญ์ ํ ๋น โ ๋ณ์์ ์ ์ธ : ๋ณ์๋ ๋ฐ๋์ ์ ์ธ ์งํ์ ์ ์ธํด์ผ ํ๋ฉฐ, ์ฐ์ฐ ํ์๋ ์ ์ธํ๋ฉด ์ ๋๋ค : ํ๋ก๊ทธ๋จ์ ํ๋ฒ ์์ฑํ๊ณ ๋๋๋ ๊ฒ์ด ์๋๋ผ ๊ณ์ ๋ณํํ๊ณ ์ ์ง๋ณด์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ค์ : ๋ค๋ฅธ ์ฌ๋์ด ์์ฑํ ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ์ฝ๊ฒ ํ๊ธฐ ์ํด์๋ ๋ณ์ ์ด๋ฆ์ ์ง๋ ๊ท์น์ ๋ฐ๋ฅด๊ณ ์ฃผ์์ ์ ์ฌ์ฉ ์๋ฃํ ๋ณ..
๐ ์์์ ์๋ฃํ // : ํต์ฌ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ ํจ์๋ค์ ์ ์ #include // #1. Hello world //int main() //{ // printf("Hello World!\n"); //} // #2. ์์์ ์๋ฃํ void main() { // ๋ฌธ์ ์์ char ch = 'A'; // ์ ์ ์์ int x = 1; int y = -1; char ch2 = '1'; // ์ค์ ์์ int memory = 123; double dblData = 123.45; float flData = 123.45f; // sizeof : ํผ์ฐ์ฐ์๋ฅผ ์ ์ฅํ๋ ๋ฐ ํ์ํ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ฅผ ๋ฐ์ดํธ ๋จ์๋ก ๊ณ์ฐ printf("%d \n", sizeof(dblData)); printf("%d \n", sizeof(flDa..
๐ Hello, world! ์๋ณ์ : ํน์ ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ์ ๋ถ์ฌํ ์ด๋ฆ ⇒ ๋ณ์์ด๋ฆ, ํจ์์ด๋ฆ ๋ฑ // : ํต์ฌ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ ํจ์๋ค์ ์ ์ #include int main() { printf("Hello World!\n"); } ๐ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ์ ๋จ์ ๋์งํธ ์ ํธ(0,1)๋ก ์๋(์ ์ฅ, ์ฐ์ฐ), 0๊ณผ 1์ ์ ์ฅ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ 1bit์ ์ต์ ๋จ์๋ก ํํ 8๊ฐ์ bit๋ฅผ ํ๋๋ก ๋ฌถ์ด ๊ด๋ฆฌ, ์ด ๋์ ๋จ์๋ Byte ์๋ฌธ ํ๊ธ์๋ฅผ ์ ์ฅ, ๊ฐ์์ ๊ณ ์ ํ ์ฃผ์๋ฅผ ๊ฐ์ง ์ ์๋ ์ต์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ ๐ C ์ธ์ด์ ์๋ฃํ โ ๋ถํธ๊ฐ ์๋ ์ ์ : 8bit ์ ๊ตฌ๊ฐ์ ์ ์ํ(Unsigned Integer) ํํ : ๋ถํธ ์์์ ์๋ฏธ๋ ์์ ์ธ์ ์์๋ ํํ ํ ์ ์๋ค โ ๋ถํธ๊ฐ ์๋ ์ ์ : ๋ถํธ ๋นํธ(Sign Bi..