한 걸음 두 걸음
C프로그래밍 #02 ] 표준 입/출력 도구연산자 기본 본문
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의보수, 음수표현)
'Language > C' 카테고리의 다른 글
C프로그래밍 #03 주차 이러닝 정리 ] 연산자 응용 기본제어문 + 배열 (0) | 2019.07.23 |
---|---|
Visual Studio 2017 C프로그래밍 프로젝트 만들기 (0) | 2019.07.11 |
C 프로그래밍 Novice교육과정 이러닝 정리 ] 1장 C프로그래밍 입문1.2 (0) | 2019.07.11 |