묻공러
'C/[코드조선] C 핵심' 카테고리의 글 목록 (4 Page)

C/[코드조선] C 핵심

C/[코드조선] C 핵심

[C] 탈출 문자열(Escape Sequence)과 서식 지정자(Format Specifier)

탈출 문자열(Escape Sequence) 탈출 문자 ’\’와 함께 작성된 문자열은 위와 같다 C언어에서 문자열은 시작 큰 따옴표와 끝 큰 따옴표로 감싸져 있다 이 문자열 도중에 위와 같은 다른 의미를 가지는 문자열을 넣으면, 잠시 문자열을 탈출하기에 탈출 문자열이라고 부른다 서식 지정자(Format Specifier) printf(), scanf() 함수와 같은 입출력 함수들과 함께 쓰면서 양식에 맞게 입출력 할 수 있게끔 도와주는 지정자이다 문자열의 원하는 위치에 서식 지정자를 넣어서 사용한다 자주 쓰이는 서식 지정자는 아래와 같다 %d: decimal의 약자. (10진수) %o: octal의 약자. (8진수) %x: hexadecimal의 약자. (16진수) %u: unsigned의 약자. (양수)..

C/[코드조선] C 핵심

[C] 컴파일과 빌드

빌드 프로세스(Build Process) 위 사진처럼 빌드의 과정이 진행이 된다 특히, 컴파일이라는 용어는 2가지 의미를 가진다 전처리 과정을 끝낸 소스코드를 어셈블리 코드로 전환하는 과정을 컴파일한다고 부르기도 하지만 넓은 의미로는, 고급언어로 작성된 코드를 기계어로 전환하는 일련의 과정을 통틀어서 컴파일한다고 부른다 컴파일과 빌드 앞서 설명한 것처럼, 컴파일은 두 가지 의미를 가지고 있다 1. 확장된 소스코드가 어셈블리 코드로 변환되는 과정 2. 소스코드부터 오브젝트 코드까지의 과정 빌드는 위 그림의 전체 과정을 빌드라고 한다 따라서, 빌드는 컴파일 + 링킹이라 할 수 있다 컴파일러 컴파일과 마찬가지로 두 가지 의미로 해석이 된다

C/[코드조선] C 핵심

[C] Low-Level Language와 High Level Language

언어는 위와 같은 형태로 구분이 된다 기계어(Low-Level Language, Machine Language) 기계(컴퓨터)가 바로 이해할 수 있는 언어를 기계어라고 한다 2진법으로 작성하면 너무 길어지기 때문에 위처럼 16진법으로 보여주는 것이 일반적이다 어셈블리어(Assembly Language) 이진 패턴의 부분들을 문자로 치환하여 조금은 보기 쉽도록 작성된 언어를 어셈블리어라고 한다 고급 언어(High-Level Language) C언어 혹은 C++, Java, Python과 같은 언어들을 의미한다 사람에 가깝다는 의미에서 High-Level Language라고 부름. 결국 컴퓨터는 기계어만 이해가 가능하기에, 사람이 고급 언어로 작성하면 누군가는 번역해서 컴퓨터가 읽기 쉬운 기계어로 바꿔주는 ..

C/[코드조선] C 핵심

[C] 와일드 포인터(Wild pointer) 댕글링 포인터(Dangling pointer)

와일드 포인터(Wild pointer) 초기화하지 않아서 쓰레기 값이 채워져 있는 포인터를 의미한다 int *p1;// 와일드 포인터 // 해결 방법 int *p2 = nullptr; // 해결 방법 (언리얼) UPROPERTY() int *p3; 언리얼에서는 언리얼 오브젝트의 속성을 정하는 UPROPERTY() 매크로 작성하면 자동으로 nullptr로 초기화가 된다 UPROPERTY() 매크로를 작성하지 않으면, 와일드 포인터가 발생할 수 있음에 유의해야 한다 댕글링 포인터(Dangling pointer) 해제된 메모리 영역을 가리키고 있는 포인터를 의미한다 int* p = new int(10); delete(p) *p = 100;// 댕글링 포인터 int* p = new int(10); delete(..

C/[코드조선] C 핵심

[C] 기억부류 지정자

기억부류로는 총 4가지가 있다 전역, 지역, 정적, 레지스터 - 지역변수와 전역변수 지역변수와 전역변수는 변수의 선언 위치에 따라서 결정된다 함수나 블록 안에서 변수를 선언하면 그 변수는 지역 변수가 되고, main 함수 밖에서 선언하면 전역 변수가 된다 지역 변수는 해당 함수나 블록 내에서만 사용할 수 있고 전역 변수는 프로그램 전체에서 사용할 수 있다 전역 변수와 지역 변수가 중복해서 선언되어 있으면 지역 변수 값이 우선이다 - 자동(auto) 변수 가장 많이 사용하는 기억 클래스로 auto는 생략이 가능하다 함수 또는 블록의 내부에서 선언하며 해당 함수(블록) 내에서만 유효한 지역 변수이다 스택 공간을 일시적으로 사용한다 함수나 블록을 진입하면 기억 영역이 확보되고, 벗어나면 기억 영역은 바로 소거..