한 걸음 두 걸음

C프로그래밍 #02 ] 표준 입/출력 도구연산자 기본 본문

Language/C

C프로그래밍 #02 ] 표준 입/출력 도구연산자 기본

언제나 변함없이 2019. 7. 19. 19:32
반응형

HCI : 사람과 컴퓨터사이의 인터랙션

그 중 하나인 입출력을 공부할 예정입니다.
DOS -> GUI -> UX/UI

컴퓨터란

국가의 기반이 되는 영토, 영해, 영공 = H/W
정부가 커널(시스템프로그래밍, OS)
그리고 가정이 Process
가정 내의 구성원이 thread(멀티스레드)

단, 여기서 디버거가 경찰의 역할을 하며 프로세스간 간섭(소프트웨어적 결함, 간섭)을 막습니다.
그리고 여기서 커널이 I/O 입출력의 주체입니다.

Write Read 파일 규칙(프로토콜)

File은 사용자가 커널과 소통하기 위해서 만든 것입니다. (getchar / putchar : I/O 버퍼에 넣어요)
여기서 랜카드(HW)를 움직이는 TCP프로토콜(커널)을 움직이게 하는 파일이 바로 Socket입니다.

그래서 데이터가 필요할 때 커널에서 getchar()로 한 문자 읽어오는 등 데이터를 처리합니다.(끌어올린다.)
getchar() //int + char = 반환형이 int로 가기때문에 문자지만 아스키코드값으로 결과값을 반환합니다.

버퍼

버퍼를 이용하여 연속되게 사용하는 것처럼 쓰죠
getchar() 한글자 gets() 한줄(심각한 보안결함이 있는 함수이므로 gets_s()를 사용하길 추천합니다.)
scanf() 형식문자에 맞춰 가져오는 등이 모두 Buffered I/O라는 것을 이해해주세요.
(*fflsh()는 버퍼를 비우는 것입니다.)


연산자 기본

3 + 4 ;
항 항 항 //이모여 구문이 되었다.
구문이 모여 함수가 되고
이러한 Context(문맥)가 모여 프로그램이 됩니다.

2*3*4 와 같이 결합성이 같은 것은 왼쪽에서 오른쪽으로 갑니다.

3+4+5 = (3+4)+5 = 7 + 5 = 12

= 대입연산자는 copy & overrite이다.
a = 10 // a(lvalue, location & right) = 10( rvalue, right )

char int - 1byte 4byte이므로 더 큰 형식인 int로 자동 형변환된다.

나눗셈은 주의해야함
4/3 //int
4/3.0 //double
4/0

누적
a +=1
a++
++a

비트연산자

A&B
A|B

A = 0x25 = 00100101
B = 0x41 = 01000001
A&B = 00000001
A|B = 01000001
shift
<< (2곱하세용 )
>> (2나누세용)

~뒤집어주세요(1의보수)

~ + 1 = (2의보수, 음수표현)

반응형