묻공러
'C' 카테고리의 글 목록 (4 Page)

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는 생략이 가능하다 함수 또는 블록의 내부에서 선언하며 해당 함수(블록) 내에서만 유효한 지역 변수이다 스택 공간을 일시적으로 사용한다 함수나 블록을 진입하면 기억 영역이 확보되고, 벗어나면 기억 영역은 바로 소거..

C/[언어본색] C 기초

[언어 본색] #24 5장 - 구조체 배열과 포인터

typedef typedef : 이미 정의된 내용을 재정의 typedef int integer;

C/[언어본색] C 기초

[언어 본색] #23 5장 - 구조체

5장. 논리적 자료표현: 구조체 차례구조체구조체 배열과 포인터 구조체  자료의 논리적 표현 단위 사용자가 필요에 의해 여러 자료를 하나의 자료형으로 정의 데이터 베이스의 레코드 형식을 하나의 자료형으로 정의구조체 정의구조체 태그 : 구조체 식별자, 생략 가능함 구조체 멤버 : 구조체를 구성하는 항목 구조체 -> 하나의 자료형!! 일반 변수는 변수이름 그대로 사용 :     strcpy_s(Name, 30, “김갑돌”);구조체형 변수의 멤버 사용 – 구조체 멤버 참조 연산자(.)를 사용함     strcpy_s(friend.Name, 30, “김갑순”); #include #include using namespace std;int main(){ struct { char Name[30]; char MPh..

C/[언어본색] C 기초

[언어 본색] #21 4장 - 동적 할당

동적 할당 1 자료 저장을 위한 기억장소 할당 방법 정적 할당 프로그램에서 필요한 변수를 선언 프로그램 실행 시작에서 필요한 변수에 대한 기억공간이 할당됨 동적 할당 프로그램에서 필요한 기억공간의 크기를 할당하여 그 시작 주소를 기억 (포인터변수 사용!!) 프로그램 실행 중 기억공간이 할당되고, 사용을 마친 후 할당한 기억공간을 해제 동적 할당 2 기억장소 할당 : new 기억장소 해제 : delete #include using namespace std; int main() { int *pi = new int; *pi=100; cout

C/[언어본색] C 기초

[언어 본색] #20 4장 - 포인터: 메모리 주소

포인터 : 메모리 주소 포인터의 크기 주기억장치에서의 자료 처리 기본 단위 운영체제에 의해 결정, 윈도우 10과 같은 64비트 운영체제는 8바이트(32비트 운영체제는 4바이트) #include using namespace std; int main() { int *pi; char *pc; float *pf; double *pd; cout

C/[언어본색] C 기초

[언어 본색] #19 4장 - 문자열

문자열 함수1 자주 사용하는 문자열 처리 함수를 라이브러리에서 제공함 문자열 길이 구하기 strlen(const char *_Str) 문자열 복사하기 strcpy(char *_Dest, const char *_Str) strcpy_s(char *_Dest, rsize_t SizelnBytes, const char *_Str) 문자열 함수2 문자열 결합하기 strcat(char *_Dest, const char *_Str) strcat_s(char *_Dest, rsize_t Sizeln Bytes, const char *_Str) 문자열 비교하기 strcmp(const char *str1, const char *str2) #include using namespace std; int main() { cha..