목록Programming Language (46)
배움 저장소

2.1 기본 자료형 소개(Fundamental Data Types) Fundamental types - 자료형마다 저장공간이 정해져있다. 큰 저장공간을 사용하는데 이를 활용하지 않으면 낭비이다. - 자료형은 필요에 맞게 사용함이 좋다. character 문자 -이모티콘 같이 다양한 문자를 사용함에 따라 저장공간이 많은 char 자료형이 필요했다. 2byte, 4byte char 자료형이 있음을 확인할 수 있다. -wchar_t는 windows 개발에 여럿 쓰인다. Linux- window간 호환성 문제가 생길 수 있어 잘 사용하지 않는 추세이다. Integer 정수 - signed 보다 unsigned 연산이 빠를 때가 있다. 간단한 연산을 수없이 반복할 때 unsigned을 사용하면 유리하다. - It..

1.1 프로그램의 구조 프로그램이 실행되는 원리 (1) 사용자가 운영체제에게 프로그램 사용을 요청한다. 운영체제는 CPU(연산)와 RAM(저장) 자원을 할당하여 프로그램 데이터를 가져와 실행시킨다. (2) OS는 프로그램 시작 시 main( ) 함수를 찾아 실행한다. Statement와 Expression - statement(명령문) : semicolon( ; )이 들어간 문장으로 컴퓨터가 명령을 수행하는 단위이다. - expression(표현식): 값을 계산하기위해 +,- 와 같이 연산자와 숫자로 구성된 기호들로 결과 값이 존재한다. 저장공간 할당받기 - 아래 코드를 통해 int 자료형의 저장공간을 할당받았다. int x; 1.2 주석 comments 1.3 변수와의 첫 만남 Object(객체) : ..

0.0 - 배우다가 해보고싶거나 구현하고 싶은 코드가 있다면 바로 해보자 0.1 프로그래밍 언어란 기계어(Machine Language) - 0000 0000 0000 0001 = 1 어셈블리(Assembly Language) - CPU가 일할 수 있는 최소 기능을 지시할 수 있는 언어이다. 어셈블리로 메모리 정보를 직접 가져올 수 있다. 고수준 언어(High-Level Language) - Hardware와 가까우면 Low 멀어지면 High로 나눈다. 컴파일러 VS 인터프리터 - 컴파일러: 코드를 기계어로 번역해주어 실행파일을 만든다. - 인터프리터: 프로그램(인터프리터)가 코드를 한 줄씩 실행한다. CPU로 넘겨서 바로 작동함과 동일하다. 컴파일러 언어 인터프리터 언어 프로그램 실행 절차 컴파일러가 ..

16.1 전처리기가 해주는 일들 전처리기 이름은 컴파일러를 기준으로 만들었다. Visual Studio에서 "전처리기->컴파일러->링커->실행파일"을 빌드라 부른다. 컴파일이라 부르기도 한다. 16.2 전처리를 준비하는 번역 단계 전처리기가 하는일 Translating Translating Preprocessing Compiling Linking Executable Tranlating을 전처리 이전 단계로 구분하여 보는 관점이 있다. Translating을 전처리 과정에 포함하여 보는 관점이 있다. Deprecated 옛날 키보드는 다양한 문자를 지원하지 않았다. 전처리기가 ?? + 'character" 조합으로 여러 문자를 만들어냈다. 이를 사용하기 위해서 컴파일러 옵션을 설정해줘야 한다.command..

15.1 비트단위 논리 연산자 비트단위 논리 연산자는 낱개로 사용한다 C언어에서 거듭제곱 연산자(^)를 지원하지 않는다. ^연산자는 bitwise에서만 사용한다. Bit 연산자의 활용 bitwise 연산을 통해 메모리 낭비를 줄일 수 있다 Bitwise And & Bitwise OR | Bitwise Excluesive OR ^ Bitwise Not~ 15.2 이진수를 십진수로 바꾸기 연습문제 #include // pow() unsigned char to_decimal(const char binary_digit[]); int main() { printf("Binary (string) to Decimal conversion\n"); printf("%d\n", to_decimal("00000110")); p..

14.1 구조체가 필요한 이유 1. 여러 자료형 배열을 Index base로 관리하기 어렵다 2. 구조체를 이용하여 Tag 하나로 관리할 수 있다 - 구조체 내부 member variable에 접근하기 위하여 Dot(.) Operator를 사용한다. - 메모리를 효율적으로 사용하기 위해 멤버 member variable 사이에 빈공간(padding)을 둔다. 14.2 구조체의 기본적인 사용법 #define MAX 41 struct person // person is a tag of structure { char name[MAX];// member int age; // member float height; // member }; int main() { int flag; // Receives return v..

13.1 파일 입출력의 작동 원리 - 프로그램을 실행하면 운영체재와 소통할 수 있는 채널이 3개 열린다. stdout, stderr, stdin이다. - stdout과 stderr은 별도의 채널을 가지고 있다. redirection(파일의 출력값을 다른 파일의 입력값으로 사용) 때 이를 활용할 수 있다. - 한 글자씩 통신하면 느리기 때문에 buffer를 이용하여 데이터를 주고받는다. 텍스트/바이너리 파일 주고받기 혼합하여 사용할 수 있다. fprintf( ) 함수는 텍스트 파일 IO 스트림에 해당 데이터를 저장한다. fwrite( ) 함수는 바이너리 파일IO 스트림에 해당 데이터를 저장한다. 13.2 텍스트 파일 입출력 예제 int main(int argc, char* argv[]) { int ch; ..

12.1 메모리 레이아웃 훑어보기 Read Only Memory(Text Segment) 프로그램이 시작되면 해당 프로그램을 실행하기 위한 코드가 Read Only Memory에 저장된다. 직접 작성한 코드가 저장되는 곳이다. 이 Memory는 프로그램이 끝날 때까지 변경되지 않는다. C++에서 가면 프로그램도 코드도 동적으로 변화시킬 수 있다. 프로그램을 실행하며 필요할 때마다 코드를 가져와 실행시킨다. Global Variable 전역변수 Data 영역은 BSS와 Data Segment로 나뉜다 BSS는 초기화되지 않은 global/static 변수가 저장된다. 모두 0으로 초기화 된다. Data Segment에는 초기화된 globa/static 변수가 저장된다. g_i와 g_j는 어디에서나 접근이 ..