컴파일러 Compiler
C code의 적법성을 판단함
C code를 object code로 변환한다.
C Program
compiler는 C 프로그램에서 6 가지 token을 모은다.
keywords
identifiers
constants
string constants
operators
punctuators
Characters used in a C prog
abcde ABCDE 12345 +-*/=(){}[]<>''"" !#%_|^~\.,;:? etc
주석 Comments
//
/* */
Keywords
특정한 의미를 나타내는데 사용되는 keywords는 다른 맥락으로 사용할 수 없다. C는 가벼운 언어라 keywords가 상대적으로 적다.
auto, do, goto, signed, unsigned, break, double, if, sizeof, void, case, else, int, static, volatile, char, enum, long, struct, while, const, extern, register, switch, continue, float, return, typedef, union, for, short, default
잘 모르겠는 것 : 빨간색
변수 Identifiers
의미를 담아서 작명할 것
상수 Constants
유형 : integer(0, 17), floating(1.0, 3.141592), character('a', '\n')
integer constant
integer constant(decimal, octal, Hexadecimal)
** 주의 **
-49는 constant expression이다. (constant 자체가 아님)
String Constants
'a'는 character constant, "a"는 string constant이다.
string constant는 "" 으로 표현한다.
연산자 Operators & 문장 부호 Punctuators
산술적인 연산자 Operators
+-*/% 등등
문장 부호 Punctuators
{} , ; () 등
연산 우선순위 Precedence and 연산 방향 Associativity of Operators
Precedence : 연산의 우선순위
* 괄호를 이용하면, 명료하게 순서를 표현할 수 있다.
Associativity of Operators : 연산자의 연산 방향
type 1. left -> right (default)
(), (postfix)++, (postfix)--
* / % + -
type 2. right -> left
(할당 assignment) = += -= *= /= 등
(단항 연산 unary) + - ++(prefix) --(prefix)
Increment and Decrement Operators
++i (prefix), i++(postfix)는 차이가 있음
Assignment Operators
= += -= *= /= %= >>= <<= &= ^= |=
기본적으로 right to left
'Computer Science > C' 카테고리의 다른 글
C언어 6강 | Arrays, Pointers, and Strings | 중요! (0) | 2021.12.16 |
---|---|
C언어 4강 | Flow of Control | 반복문, 조건문, 순차 구조 (0) | 2021.12.16 |
C언어 3강 | 데이터 타입 | char, int(short, long,unsigned), float, typedef (0) | 2021.12.16 |
C 언어 1강 | 알고리즘 사고, C 언어 역사, Hello World! (0) | 2021.12.14 |
[6.27] C언어 복습 + 예습 (0) | 2021.06.27 |