[C] 3. C 언어의 기초

Taeil Nam·2022년 6월 9일
0

C

목록 보기
3/18
post-thumbnail

1. C 언어의 기본 구조

전처리기(Preprocessor instruction)
- C 프로그래밍에서 맨 위에 "#"으로 시작하는 부분.
- 컴파일 수행 전에 처리하는 부분.

main 함수
- 운영체제가 C 언어를 실행할 때, 가장 먼저 실행하는 곳.

중괄호
- C언어에서 영역을 표현할 때 사용하는 기호.

변수 선언
- 어떠한 기능을 수행하기 위해 특정 크기의 메모리 공간을 사용하겠다는 선언.

변수에 값 대입
- 변수에 특정 값을 대입.

변수에 연산 결과 대입
- 변수에 연산 결과를 대입.

함수 호출
- 특정 기능을 위한 함수를 호출하여 사용.

결과 값 반환
- 함수에 의해 만들어진 결과 값을 반환.


2. 변수

변수 사용 이유

  • 특정 값이 아닌, 어떤 값이든 대입하여 계산이 가능하다.

변수 사용시 컴퓨터의 역할

Ex) x + y = z

  • x, y, z 처럼 값이 저장되는 변수 부분은 Memory가 담당.
  • +, = 처럼 계산 및 연산 부분은 CPU가 담당.

변수 사용의 장점

  • 어떤 값이든 대입하여 계산 가능.
  • 변수를 선언함으로서 실제 Memory 주소를 사람이 알아보기 쉬운 형태로 사용.
  • 각 변수는 실제 Memory 주소를 가지고 있음.

변수 선언 규칙

  • 알파벳, 언더스코어(_), 숫자 사용 가능.
  • 맨 앞에는 숫자 사용 불가능.
  • 대소문자 구분 함.
  • 한 영역(중괄호)안에 같은 이름을 가지는 변수가 중복되면 안됨. (컴파일러가 오류 검출)
  • 변수명에 빈칸 사용 불가능. (언더스코어(_) 사용)
  • C 언어의 예약어는 변수로 사용 불가. (int, float, for, while ...)
#include <stdio.h>

int main()
{
	int Num_Apples123;
	int my_love;
	int house;
	int cracker;
	int a;
	int A;
	
    int 123_nam;	// 변수명 맨 앞에 숫자 사용으로인한 에러 발생
	int a;			// 한 영역 안에서 변수명 중복으로인한 에러 발생
    int float;		// C 언어의 예약어를 변수명으로 사용하여 에러 발생

	return 0;
}
💡 추가적인 내용
- 라이브러리에 포함되어 있는 함수(Ex: printf) 이름도 변수로 사용하면 문제가 생길 수 있음.
- 라이브러리를 전처리기로 불러오지 않았을 때는 사용해도 괜찮으나, 추후 함수를 불러오는 경우 함수 사용이 불가능. (함수가 아닌 변수로 인식 됨)
- 굳이 나중에 안될 상황 만들지 말고, 그냥 함수명은 변수로 사용하지 말 것.

3. 자료형

  • 변수에 저장되는 값이 어떤 형태인지 미리 지정해주는 것.
    Ex) 변수에 숫자 저장시, "정수"를 저장할지 "실수"를 저장할 지 값의 형태를 지정.
  • 자료형을 통해 CPU에게 값의 형태를 알려주면, 그 값에 맞는 계산을 수행.
  • CPU는 0, 1 밖에 모르기 때문에, 정수인지 실수인지 판단을 못하므로 프로그래머가 자료형을 통해 알려줘야 함.
  • 범위가 작은 숫자는 적은 Memory 공간 필요.
  • 범위가 큰 숫자는 큰 Memory 공간 필요.
  • 자료형을 이용하여 값의 범위에 맞는 Memory 사이즈 할당 가능.

4. 주석

  • 코드의 설명을 위해 사용.

종류

  1. 블럭방식 (/* */)
    • 주석 기호로 감싼 모든 영역을 주석으로 만듬.
    /*
    	코드 설명1 ~~~~
        코드 설명2 ~~~~
    */
  2. 줄 방식 (//)
    • 주석 기호 뒤의 한 줄만 주석으로 만듬.
    // 코드 설명~~~

5. 예약어(Keyword)

  • C 언어 문법에 사용하기 위해 예약된 단어.
  • 키워드라고 부름.

6. 문법 오류와 문맥 오류

문법 오류

  • C 언어의 문법에 맞지 않게 작성되어 나타나는 오류.
  • 컴파일러가 감지 가능.

문맥 오류(Sementic)

  • C언어의 문법에 맞게 작성했지만, 프로그래머의 실수 등으로 올바른 기능 구현 되지 않는 것.
  • 컴파일러가 감지 불가.
  • 오류를 알아내기 어려움.
  • 테스트시 문맥 오류 확인 필요.
#include <stdio.h>

int main()	// n1의 네 제곱을 구하는 함수
{
	int n1, n2, n3, n4;

	n1 = 2;
	n2 = n1 * n1;
	n3 = n2 * n1;
	n4 = n2 * n1;	// n3 * n1 이 맞지만, n2 * n1 이 문법상 오류는 없으므로 문맥 오류.

	return 0;
}

7. 디버깅(Debugging)

  • 프로그램의 오류나 버그의 원인을 찾아내고 수정하는 과정.
  • 디버거(Debugger)는 디버깅을 돕는 도구이다.

8. 읽기 좋은 코드

  • 다른 사람들도 처음 봤을 때 이해하기 쉬운 코드.
  • 협업을 위해 동료간 합의하여 코딩 스타일 결정.
  • 프로그래머마다 코딩 스타일이 다르지만, 협업을 위해서는 맞춰나가야 함.

🚩 출처 및 참고자료 - 홍정모의 따라하며 배우는 C 언어 (따배씨)

0개의 댓글