2014. 1. 20. 21:32ㆍPrograming/C Language
서식문자
줄바꿈 문자는 아스키 코드값이 10으로, \012(8진수, 접두어 없어도 8진수 해석), \x0a(앞의 x로 16진수임을 확인)으로도 가능하나, 쉽게 사용할 수 있도록 \n을 사용하게 만든것이다.
논리연산자
논리 연산자
논리부정 ( !) - NOT
- 수식이 0의 값을 가질때 논리부정을 시키게 되면 1이고 , 1의 값을 가질 때 하게 되면 0이다.
논리곱 (&& ) - AND : ex ) a && b
- a , b 둘 다 참(1) 일 때 참( 1 ) 의 값을 리턴한다.
- 좌변의 값이 거짓일 경우 우변의 값을 평가하지 않는다.
논리합 ( || ) - OR : ex) a || b
- a 나 b 둘 중 하나만 참의 값을 가지면 참( 1 )의 값을 리턴한다.
- 좌변의 값이 참일 경우 우변의 값을 평가하지 않는다.
베타적 논리합 - XOR : C에서는 존재하지 않는다.
- 비트 XOR 연산자를 사용 표현 할수 있다. if ( (a)^(b) ) return 1
변수의 영역과 데이터 전달
AUTO - 자동 변수, 키워드를 입력하지 않아도 자동으로 설정된다.
- STATIC - 정적변수 . 자료형 앞에 붙였을 떄 정적변수가 된다. 함수
※ 내'외부 정적 변수의 차이 - 내부정적변수는 함수안에서 선언하고 사용가능하다.( 자동변수 특성 ) ,외부정적변수는 함수 밖에서도 사용가능하다.
(프로그램 전체가 하나의 모듈로 구성되어 있을 경우 외부 정적변수와 외부변수는 전 혀 구별되지 않는다)
EXTERN - 외부 변수
- 함수의 외부에서 정의 되어 프로그램 전체에서 사용 가능
- 파일의 선두에서 정의하는 것이 좋다
- 정적데이타 영역에 저장 되어진다.
REGISTER - 레지스터변수
- CPU안의 레지스터라는 공간에 저장된다
- RAM보다 입출력 속도가 빠르므로 단순하면서도 엄청난 횟수를 반복할 필요가 있을 때 사용 하면 좋다.
① 레지스터 변수로 사용할 수 있는 데이터형은 int, unsigned, (근거리) 포인터형의 3가지 뿐이다.
즉 2바이트 크기의 데이터형만이 가능하다. 레지스터가 16비트(2Byte)이기 때문이다.
② 레지스터 변수로 선언할 데이터형이 int형일 경우, int를 생략하고 register만 써도 된다.
③ 레지스터 변수로 선언한다고 모두 레지스터 변수가 되는 것은 아니고, 조건에 맞는 변수 중 처음 2개만 레지스터 변수로 지정된다.
④ 레지스터 변수로 선언하지 않아도 Turbo-C는 가능한 변수를 레지스터 변수로 만들어 사용한다.
자료형에 따른 여러가지 변환 문자열
정수값은 4바이트의 크기, 1바이트는 8비트, 즉 2의 32승만큼 표현가능하다
0x10 = 1 뒤에 0이 4비트 있으므로 2의 4승 = 16
0x100 = 1 뒤에 0이 8비트 있으므로 2의 8승 = 256
0x1000 = 1 뒤에 0이 12비트 있으므로 2의 12승 = 4096
0x10000 = 2의 16승 = 65536
0x100000 = 2의 20승 = 1048576 ==> 1MB
0x1000000 = 2의 24승 = 16777216
0x10000000 = 2의 28승 = (외울 필요없음)
0x100000000 = 2의 32승 = 4294967296 ==> 4GB
0xF = 0x10 - 1
0xFF = 0x100 - 1
0xFFF = 0x1000 - 1
0xFFFF = 0x10000 - 1
0xFFFFF = 0x100000 - 1
0xFFFFFF = 0x1000000 - 1
0xFFFFFFF = 0x10000000 - 1
0xFFFFFFFF = 0x100000000 - 1
결론적으로 %d,%u가 표현가능한 값의 범위는 0x100000000 = 2의 32승 = 4294967296 개로, signed int는 -2147483648 ~ 2147483647 이고, unsigned int는 0부터 4294967295(0xFFFFFFFF)까지입니다.
#define과 typedef의 차이
1. typedef는 자료형에 대해서만 기호 이름을 부여할 수 있다.
[출처] C언어 기본 문법 정리|작성자 풍풍터
'Programing > C Language' 카테고리의 다른 글
File RW (파일 읽고 쓰기) (0) | 2014.01.20 |
---|---|
C언어의 메모리 구조 (0) | 2014.01.20 |
MOD(%) 연산의 AND(&) 연산으로의 처리 (0) | 2014.01.20 |
#ifdef(if defined)와 #if defined (0) | 2014.01.20 |
EPOLL API 소개 및 Echo Chat Server (0) | 2014.01.20 |