02. ¸®´ª½º¿¡¼­ C¾ð¾î »ç¿ë

¡¼01¡½ GCC »ç¿ë

ÆÄÀϰü¸®ÀÚ¸¦ ½ÇÇàÇÏ¿© ³»Æú´õ¿¡ cÆú´õ »ý¼ºÇÕ´Ï´Ù.

 

 

 

cÆú´õ¿¡¼­ »õÆÄÀÏÀ» ¸¸µé¾î ÆÄÀÏ À̸§À» first.c·Î ÀÔ·ÂÇÕ´Ï´Ù. first.c ÆÄÀÏ¿¡¼­ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ¿© Áö¿¡µðÅÍ ÆíÁý±â·Î ¿±´Ï´Ù.

 

 

 

ÇÁ·Î±×·¥ Äڵ带 ÀÔ·ÂÇÑ ÈÄ ÀúÀåÇÕ´Ï´Ù. Å͹̳ÎÀ» ¿­¾î¼­ cÆú´õ·Î À̵¿ÇÕ´Ï´Ù.

 

ojk@debian:~$ pwd

/home/ojk

ojk@debian:~$ cd c

ojk@debian:~/c$ ls -l

ÇÕ°è 4

-rw-r--r-- 1 ojk ojk 131  3¿ù 12 05:04 first.c

-rw-r--r-- 1 ojk ojk   0  3¿ù 12 05:02 first.c~

ojk@debian:~/c$ 

 

ÄÄÆÄÀÏ ÇÕ´Ï´Ù.

 

ojk@debian:~/c$ cc first.c

ojk@debian:~/c$ ls -l

ÇÕ°è 12

-rwxr-xr-x 1 ojk ojk 6799  3¿ù 12 05:07 a.out

-rw-r--r-- 1 ojk ojk  131  3¿ù 12 05:04 first.c

-rw-r--r-- 1 ojk ojk    0  3¿ù 12 05:02 first.c~

ojk@debian:~/c$

 

a.out ÆÄÀÏÀÌ first.c ¸¦ ÄÄÆÄÀÏ ÇÑ ½ÇÇàÆÄÀÏÀÌ´Ù. À̸¦ ½ÇÇàÇϱâ À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÕ´Ï´Ù.

ojk@debian:~/c$ ./a.out

¿ÀÀç°ü C ¾ð¾î ±³½ÇÀÔ´Ï´Ù¡¦

ojk@debian:~/c$

 

first.c¸¦ ÄÄÆÄÀÏÇÑ ½ÇÇà ÆÄÀϸíÀ» first·Î ÁöÁ¤ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÏ¿© ½ÇÇàÇÕ´Ï´Ù.

ojk@debian:~/c$ cc -o first first.c

ojk@debian:~/c$ ls -l

ÇÕ°è 20

-rwxr-xr-x 1 ojk ojk 6799  3¿ù 12 05:07 a.out

-rwxr-xr-x 1 ojk ojk 6799  3¿ù 12 05:11 first

-rw-r--r-- 1 ojk ojk  131  3¿ù 12 05:04 first.c

-rw-r--r-- 1 ojk ojk    0  3¿ù 12 05:02 first.c~

ojk@debian:~/c$ ./first

¿ÀÀç°ü C ¾ð¾î ±³½ÇÀÔ´Ï´Ù¡¦

ojk@debian:~/c$

 

 

 

   ½ÇÇà ½Ã¿¡ ./¸¦ ¾Õ¿¡ ºÙÀÌ´Â ÀÌÀ¯°¡ ¹»±î¿ä?

 ¸®´ª½º¸¦ Æ÷ÇÔÇÑ À¯´Ð½º ¿î¿µÃ¼Á¦´Â ´ÙÁß»ç¿ëÀÚ È¯°æÀ̹ǷΠÇϳªÀÇ È£½ºÆ®¸¦ ¿©·¯ À¯Àú°¡ »ç¿ëÇÕ´Ï´Ù. ±×·¡¼­ ÇÁ·Î±×·¥¸íÀÌ °°Àº ´Ù¸¥ °æ·Î¿¡ ÀÖ´Â ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ ¼öµµ Àֱ⠶§¹®¿¡ Á¤Ã¥ÀûÀ¸·Î Ȩµð·ºÅ丮¿¡ ÀÖ´Â ÇÁ·Î±×·¥À» ½ÇÇàÇÏ´õ¶óµµ ÀÚ½ÅÀÇ È¨µð·ºÅ丮¸¦ ÁöÁ¤ÇÏ´Â ./¸¦ ºÙ¿©Áà¾ß ÇÕ´Ï´Ù.

À¯´Ð½º¿¡¼­´Â ÇÁ·Î±×·¥ ½ÇÇàÀ» ¿ä±¸Çϸé À¯ÀúÀÇ PATH¿¡ ÁöÁ¤µÈ ¼ø¼­´ë·Î ½ÇÇàÇÏ°í ½ÇÇàÆÄÀÏÀÌ ¾øÀ¸¸é Á¾·áÇϸç Ȩµð·ºÅ丮¿¡ ÀÖ´Â ÆÄÀÏÀº ½ÇÇàÇÏÁö ¾Ê½À´Ï´Ù.

 


 

¡¼ÇÑ °ÉÀ½ ´õ¡½

½ÇÇàÆÄÀÏÀÌ ¸¸µé¾îÁö±â±îÁö ¼Ò½ºÆÄÀÏÀÌ °ÅÄ¡´Â ´Ü°èº° °úÁ¤Àº ´ÙÀ½°ú °°½À´Ï´Ù. 

 

1. Àüó¸® ´Ü°è - Àü󸮱â (cpp)

#include, #define µî #À¸·Î ½ÃÀÛÇÏ´Â ¹®¹ý »çÇ×ÀÌ ÀûÀýÈ÷ Àüó¸®µÈ C ¾ð¾î ¼Ò½ºÆÄÀÏ »ý¼º

 

2. ÄÄÆÄÀÏ ´Ü°è - ÄÄÆÄÀÏ·¯ (cc1) 

 C ¾ð¾î ¼Ò½ºÆÄÀÏÀº ÄÄÆÄÀÏ °úÁ¤À» °ÅÃÄ ¾î¼Àºí¸® ¼Ò½º ÆÄÀÏÀÌ µÊ

 

3. ¾î¼Àºí ´Ü°è - ¾î¼Àºí·¯ (as)

¾î¼Àºí¸® ¼Ò½º ÆÄÀÏÀº ¾î¼Àºí °úÁ¤À» °ÅÃÄ ¸ñÀû ÆÄÀÏÀÌ µÊ 

 

4. ¸µÅ© ´Ü°è - ¸µÄ¿ (ld)

¸ñÀû ÄÚµå´Â ¶óÀ̺귯¸®¿Í ¸µÅ©µÇ¾î ½ÇÇà °¡´ÉÇÑ ÆÄÀÏÀÌ µÊ

 

-c ¿É¼Ç¿¡ ÀÇÇØ ¸¸µå¾îÁø ¸ñÀû ÆÄÀÏÀº ¿©·¯°³ÀÇ C ¼Ò½º ÆÄÀÏ·Î ÀÌ·ç¾îÁø ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÒ ¶§ ±× Çʿ伺ÀÌ ºÎ°¢µË´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ¿©·¯°³ÀÇ ¼Ò½ºÆÄÀÏ·Î ÀÌ·ç¾îÁø ÇÁ·Î±×·¥À» ÅëÇÏ¿© ¿Ö ¸ñÀû ÆÄÀÏÀÌ ÇÊ¿äÇÑÁö ¾Ë¾Æº¾½Ã´Ù. 


 

 

// File Name : main.c

#include<stdio.h>

#include "obj.h"

 

int main() {

     uf_print1();

     uf_print2();

 

     return 0;

}

 

 

// File Name : obj.h

#include<stdio.h>

 

     void uf_print1();

     void uf_print2();

 

// File Name : uf_print1.c

 

#include<stdio.h>

 

void uf_print1() {

     printf("¸ñÀûÆÄÀÏ ¿¹Á¦ÀÔ´Ï´Ù...");

}

 

 

// File Name : uf_print2.c

 

#include<stdio.h>

 

void uf_print2() {

     printf("2°³ÀÇ ÆÄÀÏÀ» »ç¿ëÇÕ´Ï´Ù...");

}

 

 

 

ÄÄÆÄÀϰú ½ÇÇà

gcc -c main.c

gcc -c uf_print1.c

gcc -c uf_print2.c

gcc -o main.exe main.o uf_print1.o uf_print2.o

main.exe

 

 

 

03. ¹«ÀÛÁ¤ µû¶óÇϱâ

C¾ð¾îÀÇ Àü¹ÝÀûÀÎ °úÁ¤À» °£´ÜÈ÷ ÀÌÇØÇϱâ À§Çؼ­ ¸î °³ÀÇ ÇÁ·Î±×·¥À» ¸¸µé¾î¼­ ½ÇÇàÇÏ¿© º¾½Ã´Ù. ¸í·É¾î â¿¡ "ù C¾ð¾î ÇÁ·Î±×·¥ÀÔ´Ï´Ù¡¦."¸¦ Ãâ·ÂÇÏ¿© º¾½Ã´Ù.

´ÙÀ½ ÇÁ·Î±×·¥ ÄÚµå´Â C¾ð¾î ÇÁ·Î±×·¥ÀÇ ±âº» °ñ°ÝÀ̹ǷΠÃÖ¼ÒÇÑ ¿©±â¼­´Â ÀÌÀ¯¸¦ »ý°¢ÇÏÁö ¾Ê°í ¹«Á¶°Ç ÀÔ·ÂÇÕ´Ï´Ù. Dev C++ À» ½ÇÇàÇÏ¿© ´ÙÀ½ Äڵ带 ÀÔ·ÂÇÕ´Ï´Ù.

 

#include<stdio.h>

int main(void){

     return 0;

}

 

¸í·É¾î â¿¡ "ù C¾ð¾î ÇÁ·Î±×·¥ÀÔ´Ï´Ù¡¦."¸¦ Ãâ·ÂÇϱâ À§Çؼ­´Â

 

printf("ù C¾ð¾î ÇÁ·Î±×·¥ÀÔ´Ï´Ù¡¦.");

 

¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù. µû¶ó¼­ ÀÌ ¸í·É¹®À» Áß°£¿¡ ³¢¿ö ³Ö½À´Ï´Ù.

 

// file name : ex0003_first.c

#include<stdio.h>

 

int main(void){

     printf("ù C¾ð¾î ÇÁ·Î±×·¥ÀÔ´Ï´Ù¡¦.");

     return 0;

}

 

ÀÌÁ¦ ÄÄÆÄÀÏÇÏ¿© ½ÇÇàÇÏ¿© º¾½Ã´Ù.

 

¡¼Menu / Excute / Compile & Run¡½À» Ŭ¸¯Çϰųª F11 ۸¦ ´©¸¨´Ï´Ù.

¡¼½ÇÇà °á°ú¡½

ù C¾ð¾î ÇÁ·Î±×·¥ÀÔ´Ï´Ù¡¦.

 

 

ÀÌÁ¦ ¸í·É¾î â¿¡ ´ÙÀ½°ú °°ÀÌ Ãâ·ÂÀÌ µÇµµ·Ï ¸¸µé¾î º¾½Ã´Ù.

 

ù C¾ð¾î ÇÁ·Î±×·¥ÀÔ´Ï´Ù¡¦.

¿ÀÀç°ü  C¾ð¾î ±³½ÇÀÔ´Ï´Ù¡¦.

 

 

// file name : ex0004_printf.c

#include<stdio.h>

 

int main(void)

{

     printf("ù C¾ð¾î ÇÁ·Î±×·¥ÀÔ´Ï´Ù¡¦.");

     printf("¿ÀÀç°ü  C¾ð¾î ±³½ÇÀÔ´Ï´Ù¡¦.");

     return 0;

}

 

¾Æ¸¶ À§¿Í °°ÀÌ ÀÛ¼ºÇÒ °ÍÀÔ´Ï´Ù. ±×·¯³ª ÀÌ·¸°Ô ÇØ¼­´Â ¿øÇÏ´Â °á°ú°¡ ³ª¿ÀÁö ¾Ê½À´Ï´Ù. "

ù C¾ð¾î ÇÁ·Î±×·¥ÀÔ´Ï´Ù¡¦." ¸¦ Ãâ·ÂÇϰí ÇÑ ÁÙ ³»·Á¼­ Ãâ·ÂÇÏ¿©¾ß Çϴµ¥ ÇÑ ÁÙ ³»·Á¼­ Ãâ·ÂÇ϶ó´Â ¸í·ÉÀ» ÁÖÁö ¾Ê¾Ò±â ¶§¹®¿¡ ÇÑ ÁÙ¿¡ Ãâ·ÂÀÌ µË´Ï´Ù.

 

ÇÑ ÁÙ ³»·Á¼­ Ãâ·ÂÇÏ´Â ¸í·ÉÀº "\n" ÀÔ´Ï´Ù.

\Àº Űº¸µå ¿£ÅÍŰ À§¿¡ ÀÖ´Â £ÜÀÔ´Ï´Ù. ¿¹Àü¿¡ ¿µ¹®¿¡¼­´Â \, Çѱۿ¡¼­´Â £ÜÀ̾úÁö¸¸ Áö±ÝÀº ´ëºÎºÐ \·Î ³ª¿É´Ï´Ù. \n À» Á¦¾î ¹®ÀÚ¶ó°í Çϴµ¥ µÚ¿¡¼­ ÀÚ¼¼È÷ ±â¼úÇϹǷΠ¿©±â¿¡¼­´Â \nÀº ÇÑ ÁÙ³»¸°´Ù´Â °Í¸¸ ¾Ë°í ³Ñ¾î °¡±â ¹Ù¶ø´Ï´Ù.

 

// file name : ex0005_printf_02.c

#include<stdio.h>

 

int main(void)

{

     printf("ù C¾ð¾î ÇÁ·Î±×·¥ÀÔ´Ï´Ù¡¦.\n");

     printf("¿ÀÀç°ü  C¾ð¾î ±³½ÇÀÔ´Ï´Ù¡¦.");

     return 0;

}