2. The principal structure of a program

2.1. Grammar.

키워드 : C 언어의 개념과 특성을 표현하는 #include, int, void, double, for, return 등.

구분 문자 : 괄호나 구분자 등, 프로그램 텍스트를 구조화하기 위한 문법적 도구.

Takeaway 0.2.1.1. 구분 문자들은 여러 서로 다른 의미로 쓰일 수 있다.

주석 : 다른 프로그래머들에게 설명을 보충하기 위한 텍스트. 컴파일러에게는 무시된다.

리터럴 : 고정된 값을 표현하는 아이템들.

식별자 : 프로그램 내의 존재들에 주는 이름. 데이터 오브젝트, 즉 변수에 대한 이름, 타입 별칭, 함수, 상수 이름 등이 있다.

함수 : 프로그램에 의해 사용되고 어떠한 동작을 하고 출력을 하는 프로그램의 일부분. 함수는 정의된다. 즉, 그 선언부 뒤에 따라오는 블록으로 이루어진 정의부가 존재해서 함수가 어떤 일을 하는지 알려준다.

연산자 : 대입, 초기화, 비교, 산술 등의 연산자가 있다.

2.2. Declarations.

어떤 식별자를 사용하기 전에, 우리는 컴파일러에게 해당 식별자가 무엇을 나타내는지를 선언해 주어야 한다.

Takeaway 0.2.2.1. 프로그램의 모든 식별자는 선언되어야 한다.

선언문에는 변수타입, 함수의 리턴 타입, 식별자가 배열임을 나타내는 대괄호, 배열 내의 원소를 접근하는 첨자 등이 들어간다. 변수들은 을 저장할 수 있게 해 준다.

변수에서 오브젝트, 타입, , 식별자를 구별하는 것은 중요하다.

인클루드 파일이나 헤더 파일에 미리 선언된 것들은 해당 헤더 파일을 인클루드해서 불러올 수 있다.

Takeaway 0.2.2.2. 식별자들은 여러 일관적인 선언문을 가질 수 있다.

스코프는 해당 식별자를 볼 수 있는 프로그램의 부분을 말한다.

Takeaway 0.2.2.3. 선언문은 그들이 나타나는 스코프 안에 종속된다.

블록에 의해 지정되는 스코프는 블록 스코프, 블록 밖의 스코프는 파일 스코프로 불린다. 파일 스코프 내의 식별자는 전역이라고 불린다.

2.3. Definitions.

선언문은 식별자가 가리키는 오브젝트의 종류만을 알려줄 뿐 그 오브젝트의 값이나 오브젝트가 존재하는 장소는 알려주지 않는다. 그것은 정의문이 담당한다.

Takeaway 0.2.3.1. 선언문은 식별자를 특정하고, 정의문은 오브젝트를 특정한다.

초기화를 통해 오브젝트의 선언문과 초기 값을 한 번에 줄 수 있다. C에서는 초기화를 통한 선언문이

Takeaway 0.2.3.2. 오브젝트는 초기화되는 시점에 정의된다.

배열 등에 대한 초기화자는 지정 초기화자를 이용할 수 있다.

Takeaway 0.2.3.3. 초기화자에서 빠진 항목들은 0으로 초기화된다.

배열 내의 위치는 첨자라고 불린다.

Takeaway 0.2.3.4. n개의 항목을 가진 배열에서, 첫 번째 항목은 첨자 0을, 마지막 항목은 첨자 n – 1을 가진다.

식별자는 오브젝트함수를 가리킨다.

Takeaway 0.2.3.5. 모든 오브젝트나 함수는 하나의 정의문만을 가진다.

2.4. Statements.

연산은 연산자에 의해 특정된다.

2.4.1. Iteration.

가장 간단한 반복문은 범위 반복문이다. for 문에서 반복될 부분은 루프 몸체라고 하며 반복될 조건을 정해주는 부분은 루프 변수, 루프 조건, 반복 실행문으로 이루어진다. 이는 루프 변수의 특정한 범위 내에서 반복된다.

Takeaway 0.2.4.1. 도메인 내에서의 반복은 for 문으로 코딩되어야 한다.

Takeaway 0.2.4.2. 루프 변수는 for문의 최초 부분에서 정의되어야 한다.

2.4.2. Function calls.

함수는 인자를 가진다. 다른 언어는 참조에 의한 호출이 있기도 하지만 C에는 없다. 다만 함수의 주소값을 넘겨주는 방식의 다른 메커니즘이 있다.

2.4.3. Function return.

프로그램의 실행을 나타내는 도식을 제어 흐름이라 한다.

여러 유용한 함수를 모아놓은 C 라이브러리가 있다.

요점 정리

  • C는 프로그램의 어휘적 구조 (구분 문자, 식별자, 숫자), 문법적 구조(문법), 의미적 구조(의미)를 구분한다.
  • 모든 식별자는 우리가 그것이 가리키는 개념의 특성을 이해할 수 있도록 이름지어져야 한다.
  • 모든 오브젝트와 함수는 정의되어야 한다.
  • 명령문은 작업들이 어떻게 수행될지를 나타내준다. 반복문(for)는 특정한 일을 반복시키고, 함수 호출(printf)는 함수에게 작업을 위임하고, 함수 반환문(return)은 함수를 호출한 쪽으로 되돌아간다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중