본문 바로가기

공부/C

(8)
C_식별자(Identifier) 선언(Declaration), 정의(Definition), 초기화(Initialize) 선언 - 무언가를 사용하겠다고 알리는것 정의 - 무언가를 어떤식으로 사용하겠다고 알리는 것 초기화 - 선언 및 정의와 동시에 초기값을 넣어주는 것 (초기 값을 넣어줄 때는 =(할당연산자,Assignment Operator)를 사용해서 넣어주면 된다) Ex) signed int a = 10; signed int라는 자료형의 변수 a에 10이라는 값을넣어 초기화하겠다고 정의 식별자(Identifier) 가상 메모리 공간을 식별해주는 문법 식별자는 이름만 보더라도 무슨작업을 하는지 알 수 있겠금 의미있게 지어야 사용하기 편하다 동일한 블록 스코프 안에서는 식별자의 중복이 허용되지 않는다 식별자와 가상 메모리 공간 가상 메모..
C_자료형(Data Type) 자료형(Data Type) 가상 메모리(실제 저장되는 위치는 실제 메모리)에 할당된 공간을 일정 크기로 구분해서 특정한 의미를 부여한 뒤 해석 실행 환경(런타임)에서 값이라고 인정되는 정보가 있는 정보 저장소의 영역 특정 유형을 가진 것으로 해석되는 객체의 정확한 의미 정적 메모리 할당(Static Memory Allocation) 자료형의 크기는 컴파일 타임 때 적용되지만 실제로 할당되는 부분은 런타임 때 소스코드에 자료형 기재 - 컴파일러에의해 기계어로 컴파일 - 프로그램 실행(런타임) 자료형 메모리 할당 메모리 할당을 하는 이유 가상메모리는 운영체제, 여러 프로그램들이 공동으로 사용하는 공동 영역임 운영체제가 각 프로그램끼리 영역을 침범하지 않도록 관리 해줌 (영역이 침범되면 프로그램이 멀쩡하지 못..
C_변수(Variable), 상수(Constant) 변수(Variable) 변하는 수, 가변적인 수 라고함 상수(Constant) 값이 고정되어 변하지 않는 수 변수든 상수든 값을 저장할 공간은 필요하다 상수 같은 경우는 동일한 상수값이 사용될 경우 이전에 할당 했던 상수 값을 다시 사용한다 상수의 종류 리터럴 상수(Literal Constant) 문자 그 자체로의 의미가 있는 상수 Ex) 1, 1.3 같은 수 또는 "Enjoy Coding" 또는 '+' 또는 같이 그 자체로 의미가 있는 상수 심볼릭 상수(Symbolic Constant) 상수를 기호화 하여 의미 있는 이름으로 지정하여 사용 하는 상수 Const 키워드를 통한 상수화 Ex) const int num = 7; // num을 7로 상수화 num = 100; // 에러 발생 define 키워드..
C_이스케이프 시퀀스(Escape Sequences) 이스케이프 시퀀스(Escape Sequences) 제어 문자(Control Sequences)라도고 함(문자로 이루어져서 제어 문자라고 함) 백슬래시(\) 다음에 특정 문자 또는 숫자 조합으로 구성된 문자 조합을 의미 이스케이프 시퀀스 몇가지 \n 키보드 커서위치를 다음 줄의 시작 지점으로 옮김 New Line, Line Feed 키보드 커서(Keyboard Cursor) == 키보드 캐릿(Keyboard Caret) == 캐리지(Carriage) 키보드의 현재 위치를 알려주는 용도 \t 키보드 커서의 위치를 현재 커서위치로 부터 조금 뒤로 이동 시킴(키보드 탭과 같은 기능) \\ 특수문자 \ 를 출력(\ 가 이스케이프 시퀀스 선행 커맨드라서 \를 출력하려면 \\ 두번 입력해야 \가 출력된다고 생각하면 ..
C_주석(Comments) 주석(Commnets) 추가 설명 문구 컴파일러는 주석을 무시하고 넘어가기 때문에 주석을 많이 써도 소스파일의 용량만 올라간다 주석 사용방법 // // 주석 적용된 라인 주석 적용되지 않은 라인 /**/ /* 범위내에 모든 문자 주석 처리 */
C_Main에 대해서 리버스 엔지니어링(Reverse Engineering) 리버싱(Reversing) 또는 역공학이라고 함 어느 특정 물건, 장치의 구조, 기능, 동작을 역으로 분석하는 것 리버싱 종류 정적분석 파일을 실행하지 않고 파일의 종류, 크기 등의 기본적인 내용을 확인하는 것 디스어셈블러를 통해서 내부코드와 그 구조를 확인하는 것 동적방법 파일을 실행하여 동작, 메모리의 변화, 레지스트리, 네트워크 등을 확인하는 것 디버거를 이용하여 프로그램 내부구조와 동작을 분석하는것 프로그램 진입점(Entry Point) 프로그램 시작점 기본적으로 시작지점은 C 런타임 라이브러리의 함수 이름 C언어의 프로그램 시작지점은 int main(void)이고 런타임 라이브러리를 초기화 함 (프로그램 시작 지점 진입전 런타임 라이브러리 ..
C_여러가지 헤더 파일 포함 # : 전처리기(preprocessor) 컴파일러가 하는 일 : 소스 코드 컴파일 전처리기가 하는 일 : 컴파일러가 동작하기 전에 소스 코드에 여러 추가 작업 #include : 헤더 파일(Header File)을 포함하라는 전처리문 헤더파일(Header File) C언어 및 C++에서 사용하는 일종의 레퍼런스 외부 소스 파일에 정의되어 있는 변수나 함수를 사용하기 위해서 만든다. 표준헤더 컴파일러가 기본적으로 지원 사용자 헤더 사용자가 임의로 만든 헤더 헤더 파일 사용 방법 #include : 컴파일러에서 환경에 따라 지정된 Spec 경로 또는 명시적으로 지정한 경로에서 파일을 찾음 (#include ) 대표적인 사용방법 #include "상대 경로 헤더 이름" " " : ..
C 언어_출력 stdio.h 헤더파일 포함 후 printf("Hello World!\n"); Hello World! 출력