[C] C언어 기초

[C] C언어의 함수와 변수

ITsubin 2022. 3. 19. 00:43

C언어 컴파일 과정은 아래와 같습니다.

전처리 지시자 + 소스 파일 + 링커 ==> 실행 파일(exe)

실행파일을 직접 확인하기 위해 소스파일 0319.c를 생성 후 코드 실행으로 확인해보겠습니다.

 

대충 코드를 짠 후 실행을 시켜줍니다.

#include <stdio.h>
int main(void) {
     printf("exe file check");
     return 0;
}

실행시킨 후 폴더(C:\Cprogramming\0319)를 확인해보면 x64폴더(또는 x86)가 생긴 것을 확인할 수 있습니다.

x64 폴더 안의 Debug 폴더를 확인해보면 0319.exe 실행 파일이 생성된 것을 확인할 수 있습니다.

 

같은 프로젝트 내에 main함수는 오직 하나만 있어야 합니다.

현재 프로젝트에서 소스 파일을 아무거나 생성해서 main함수를 포함하여 코드를 짠 후 실행해보면 오류가 납니다.

이는 같은 프로젝트 내의 소스 파일 두 개 모두 main함수를 가지고 있기 때문입니다.

 

파일 우클릭 => 속성 => 구성 속성의 일반 => 빌드에서 제외를 [예]로 바꿔주면 지정 파일만 컴파일하지 않게 설정할 수 있습니다.

 

"변수"란, 어떠한 값을 저장하기 위한 공간입니다.

변수를 사용하기 위해서는 먼저 "선언"을 해야 합니다.

 

선언 형식 : [ 자료형 ] [ 변수 이름 ]

선언 형식을 지키지 않으면 메모리의 할당이 되지 않기 때문에 사용이 불가합니다.

ex) int num;

 

C언어에서의 자료형은 아래와 같습니다.

 - 정수 short : 2byte

 - 정수 int : 4byte

 - 실수 float : 4byte

 - 실수 double : 8byte

 - 문자 char : 1byte

 

정수형의 변수 a를 선언하려면 int a;

문자형의 변수 b를 선언하려면 char b;

등과 같이 선언할 수 있습니다.

 

하지만 위의 예시는 변수 선언만 하고 "초기화"를 하지 않은 상태입니다.

아래 예시처럼 선언만 하고 출력해보면 오류가 생기는 것을 확인할 수 있습니다.

C언어에서는 선언을 한 후 초기화를 하지 않으면 변수에 쓰레기값(garbage value)이 저장됩니다.

X O
#include <stdio.h>
int main(void) {
     int a;
     printf("%d", a);
}
#include <stdio.h>
int main(void) {
     int a=0;
     printf("%d", a);
}

 

초기화는 위 예시처럼 [자료형] [변수 이름] = [초기화 값]; 으로 사용해도 되고,

선언부와 떨어뜨려 따로 [변수 이름] = [초기화 값];으로 사용해도 됩니다.

#include <stdio.h>
int main(void) {
int a;
a = 2;
printf("%d", a);
}
#include <stdio.h>
int main(void) {
     int a=0;
     printf("%d", a);
}

 

단, 변수 이름은 숫자로 시작해서는 안됩니다.  ex) int 2022num; ( X )

또한 이름에 공백이 존재해서도 안됩니다.  ex) int num n; ( X )

 

변수는 오직 하나의 데이터만 저장할 수 있습니다.

 

위 예시에서 초기화 시 사용한 [ = ]는 대입 연산자입니다.

대입 연산자는 오른쪽의 값을 왼쪽에 넣을 때 사용합니다.