선언(Declaration), 정의(Definition), 초기화(Initialize)
선언 - 무언가를 사용하겠다고 알리는것
정의 - 무언가를 어떤식으로 사용하겠다고 알리는 것
초기화 - 선언 및 정의와 동시에 초기값을 넣어주는 것
(초기 값을 넣어줄 때는 =(할당연산자,Assignment Operator)를 사용해서 넣어주면 된다)
Ex)
signed int a = 10;
signed int라는 자료형의 변수 a에 10이라는 값을넣어 초기화하겠다고 정의
식별자(Identifier)
가상 메모리 공간을 식별해주는 문법
식별자는 이름만 보더라도 무슨작업을 하는지 알 수 있겠금 의미있게 지어야 사용하기 편하다
동일한 블록 스코프 안에서는 식별자의 중복이 허용되지 않는다
식별자와 가상 메모리 공간
가상 메모리 공간은 1바이트 씩 구분
sum - int자료형 4바이트, 가상메모리 공간 4칸(4 Byte)차지
age - short자료형 2바이트, 가상메모리 공간 2칸(2 Byte)차지
averge - double자료형 8바이트, 가상메모리 공간 8칸(8 Byte)차지
ptrSum - Point자료형 4바이트, 가상메모리 공간 4칸(4 Byte)차지
식별자는 하나의 저장 공간 주소만 가리킬 수 있다
하나의 저장공간 을 가리키고 자료형의 읽어들이는 바이트 수를 참조하여 값을 추출 할 수 있음
Ex) sum은 90000000를 가리키고 이후 90000002까지 4 Byte만큼 읽어 들임
Big Endian, Little Endian
Big Endian - 저장 순서가 최상위 바이트부터 저장을 하는 형식
Little Endian - 저장 순서가 최하위 바이트 부터 저장을 하는 형식
32비트 크기의 정수
0x12345678
1바이트값 4개로 구성된다.
0x12, 0x34, 0x56, 0x78
BigEndian 방식
Little endian 방식
빅 엔디안, 리틀 엔디안 장단점(?)
빅 엔디안과 리틀 엔디안은 단지 저장해야 할 데이터를 어떤 방식으로 나누어 저장할까에 대한 차이 밖에 없다.
(둘 중 어느한 방식이 더 좋다고 이야기 할 수 없음)
하지만
물리적으로 데이터를 조작하거나 산술 연산을 수행할 때 - 리틀 엔디안 방식이 효율적
데이터의 각 바이트를 배열처럼 취급할 때 - 빅 엔디안 방식이 효율적
Void 자료형
void a;
이런식으로 사용하면 불완전한 형식(Incomplete Types)이라 오류가 발생함
컴파일러는 완전한 형식(Complete Types)일 때만 컴파일을 진행한다.
불완전한 형식(Incomplete Types)
- 식별자가 존재는 하지만 메모리 공간 크기에 대한 정보가 없을 때 를 의미
'공부 > C' 카테고리의 다른 글
C_자료형(Data Type) (0) | 2023.03.23 |
---|---|
C_변수(Variable), 상수(Constant) (0) | 2023.03.20 |
C_이스케이프 시퀀스(Escape Sequences) (0) | 2023.03.17 |
C_주석(Comments) (0) | 2023.03.17 |
C_Main에 대해서 (0) | 2023.03.16 |