안녕하세요, IT디자이너입니다. 이번에 포스팅할 내용은 C언어의 기억클래스와 속성 수식자 관련하여 포스팅하도록 하겠습니다. 기억클래스와 속성수식자란? 우리가 변수를 선언할 때 아래 방식처럼 static이나 auto등을 간혹 사용하는 경우와 상수로서 선언할 경우 const 예약어를 사용하는 경우도 있을 것입니다. 기억클래스 - 속성 수식자 - 부호 - 크기 수식자 - 식별자 auto const signed short num1 여기서 기억클래스와 속성 수식자에 관하여 상세하게 파헤쳐보도록 하겠습니다. - 기억 클래스 1. auto (자동변수) 일반적인 지역 변수 형태이며, 블럭 안에서만 유효하며 블럭의 실행이 끝나면 소멸합니다. 스택에 메모리 할당됩니다. 일반적으로 C에서 auto 키워드는 생략되어 있다. ..
안녕하세요, IT디자이너입니다. 이번 포스팅은 저번 포스팅에서 비쥬얼스튜디오 사용시 Debug모드와 Release모드의 차이점을 보충 설명하도록 하겠습니다.! 먼저 프로젝트 속성에서 C/C++ 메뉴를 클릭 후 최적화 메뉴에서 "사용 안 함"을 체크를 해주세요. 그 이유는 저희가 작성한 소스코드를 컴파일시 컴파일러가 판단하여 몇가지의 소스코드를 생략하는 현상이 발생하게 됩니다. (이 부분은 추후 포스팅에 자세히 설명드리도록 하겠습니다. ) 저번 포스팅인 "Debug 모드와 Release 모드 디버깅"에서 프로그램의 메모리 구조를 간단히 살펴보았습니다. 여기서 우리가 자세히 알아볼 부분은 "스택 메모리" 부분입니다. 스택 메모리는 후입선출(last in, first out)의 특징을 가지고 있습니다. 또한 ..
안녕하세요, IT디자이너입니다. 이번 포스팅은 비쥬얼스튜디오 사용시 Debug모드와 Release모드의 차이점을 설명드리도록 하겠습니다. 우선, 프로그램의 메모리 구성을 간단히 설명드리도록 하겠습니다. 프로그램 실행시 데이터 특성에 따라 각기 다른 데이터 영역에 데이터가 저장됩니다. - 코드 영영 : 우리가 작성한 소스코드가 저장되는 영역입니다. - 데이터 영역 : 전역변수 및 static 변수가 저장되는 영역입니다. - 힙 영역 : run 타임중 메모리 동적할당에 의해 발생된 데이터가 저장되는 영역입니다. - 스택 영역 : 지역변수 및 매개변수가 저장되는 데이터 영역입니다. 이제 본격적으로 Debug모드와 Release 모드를 설명드리도록 하겠습니다. Debug 모드는 우리가 개발하고 실행을 할 경우 ..
안녕하세요, IT디자이너 입니다. 이번 포스팅의 내용은 비쥬얼스튜디오에서 C언어와 어셈블리어의 관계에 대해서 직관적으로 설명드리도록 하겠습니다. 우리가 프로그래밍에 사용하는 언어 C/C++, JAVA, Python 등은 사람들이 이해하기 쉽고 접근하기 쉬운 high level의 언어라고 불립니다. 그리고 CPU가 처리하는 기계어와 가장 근접한 low level 언어 중 하나는 바로 "어셈블리어"입니다. 아무리 low level 언어라고 하더라도 C/C++언어를 완벽하게 사용하기 위해서는 어셈블리어 해석능력은 꼭 알아두셔야됩니다. 그 이유는 C/C++를 사용하여 개발하는 과정 중 상황에 따라서 언어에서는 발견할 수 없는 여러가지 버그들이 있습니다. 이러한 버그들을 해결하기 위해서는 위 사진처럼 디스어셈블리..
안녕하세요, IT디자이너입니다. 이번 포스팅은 포인터와 배열의 관계 심화와 더불어 포인터 함수에 관하여 포스팅 하도록 하겠습니다. 이번에 포인터와 배열은 밀접한 관련이 있다고 하였습니다. 포인터와 연관된 배열은 2가지가 있는데요 배열 포인터와 포인터 배열 입니다. 배열 포인터는 배열을 가리키는 포인터입니다. 그리고 포인터 배열은 포인터로 이루어진 배열이라고 생각하시면 되겠는데요 조금 더 자세하게 설명 드리도록 하겠습니다. 1. 배열 포인터 배열 포인터는 배열을 담을 수 있는 포인터입니다. 설명으로는 이해가 어려우니 소스코드로 보여드리겠습니다. 위 사진을 보시게 되면은 배열을 포인터에 대입하여 초기화하는 코드입니다. 또한 2차원 배열 포인터를 초기화 하는 방법 또한 다른데요 2차원 배열 포인터는 두번째 대..
안녕하세요, IT디자이너입니다. 이번 포스팅에서는 배열과 포인터의 관계에 대해서 포스팅하도록 하겠습니다.! 저번 포스팅에서는 배열의 변수 이름이 주소를 가리킨다고 말씀드린적이 있죠? 위 사진처럼 배열 변수 이름의 주소와 배열의 첫번째 인덱스의 주소는 동일합니다. 또한 배열 변수에 *(asterisk) 연산자를 사용해서 연산하였을 때 배열의 첫번째 인덱스의 요소가 출력됩니다.!! 즉, 배열은 포인터처럼 사용할 수 있고 포인터는 배열처럼 사용할 수 있습니다. 위 사진처럼 배열을 포인터처럼 사용하는 방법이 있습니다. 하지만 2번째 printf() 함수 부터는 조금 다르죠? 저번에 배열의 사용방법에 대해서 포스팅한 내용을 보시게 되면은 이러한 내용이 있을 겁니다. "배열은 메모리 내부적으로 1차원으로 존재한다"..
안녕하세요, IT디자이너입니다. 포인터는 특정 메모리 위치의 값을 가리키는 변수를 뜻합니다. 의미는 정말 간단하죠? 하지만 응용을 하게된다면 끝도없이 어려워질 수 있습니다. ㅜㅜ 포인터는 초기화할 때 그리고 특정 메모리 위치의 값을 반환할 때 *(asterisk) 연산자를 사용해서 사용합니다. !! 바로 예를 들어서 설명드리도록 하겠습니다. 위 사진을 보시면은 특정 값으로 초기화된 int 데이터 타입의 변수의 주소를 포인터 변수를 초기화할 때 사용하였습니다. 즉 ptr은 num 변수의 주소를 가리키고요 *(asterisk) 연산자를 이용해서 가리키는 주소의 값을 반환하도록 하는 것입니다. 그러면 ptr만 printf() 함수로 출력하였을 때 num의 주소가 나오겠네요? 네 맞습니다. 포인터 변수의 값과 ..
안녕하세요, IT디자이너입니다. 이번에는 C언어에서 배열을 사용하는 방법에 대해서 포스팅하겠습니다. 배열이란 "동일한 데이터 타입을 모아놓은 것"으로 설명드릴 수 있겠습니다. 하지만 선언방법부터 접근 방법까지 일반적인 변수들과는 차이가 있습니다. 만약 여러분인 동일한 데이터 타입의 변수를 100개 아니 1000개 생성해야 할 경우에는 어떻게 하실 건가요?? 마치 지옥과도 다름없으실 겁니다. 이것을 해결하는 방법이 바로 배열입니다. !! 자 이제 배열에 대해서 설명드리도록 하겠습니다. 1. 배열선언과 사용방법 배열은 1차원배열부터 2차원, 3차원과 같이 다차원 배열이 있습니다. 먼저 1차원 부터 설명드리도록 하겠습니다. int num1[5] = {1,2,3,4,5}; int num2[] = {1,2,3,4..
- Total
- Today
- Yesterday
- IT디자이너 #QuickSort #퀵정렬 #C언어 #C++ #자료구조 #알고리즘
- Debug #C언어 #C++ #비쥬얼스튜디오 #Release #IT
- IT디자이너 #C언어 #C++ #속성지정자 #기억클래스 #IT #const #static #register #volatile #extern #auto #s
- 디버그 #Debug #Release #디버그와 릴리즈 차이 #C언어 #C++언어 #어셈블리어
- 어셈블리어 #IT디자이너 #C언어 #C++언어 #어셈블리 #어셈블러
- C언어 #포인터 #IT디자이너
- IT디자이너 #C언어 #C++ #IT디자이너 #코딩테스트
- C언어 #C++ #어셈블리어 #IT디자이너 #비트연산자 #연산자 #C언어의 비트 연산자
- C언어 #C++ #어셈블리어 #재귀함수 #IT디자이너
- C언어 #C++ #삼각함수 #IT디자이너 #문제풀이 #2진수 #16진수 #비트 #bit #비트연산자
- C언어 #C++ #어셈블리어 #구조체 #구조체 특징 #IT디자이너
- C언어 #IT디자이너 #포인터 #배열 #포인터와 배열
- 스택 #자료구조 #Stack #IT디자이너 #알고리즘 #C언어 #스택 과제 #C++
- C언어 #C++ #파일 입출력 #텍스트파일 #IT디자이너
- C언어 #C++ #IT디자이너
- C언어 #자료구조 #C++ #연결리스트 #리스트 #알고리즘 #IT디자이너
- C언어 #C++ #구조체 정렬 #pragma #IT디자이너
- C언어 #C++ #어셈블리어 #함수 호출 규약 #IT디자이너 #비쥬얼 스튜디오 #IT
- C언어 #C++ #시간 함수 #타이밍 맞추기 #timer interrupt #IT디자이너
- C언어 #C++ #어셈블리어 #열거형 데이터타입 #IT디자이너
- C언어 #IT디자이너
- C언어 #스트림 #버퍼링 #표준 입출력 함수 #C++언어 #IT디자이너
- C언어 #C++ #캐시hit #캐시라인 #캐시무효화
- C언어 #C++ #IT디자이너 #C++ 함수
- C언어 #포인터 #배열 포인터 #포인터 배열 #함수
- C언어 #IT디자이너 #C++언어
- C언어 #C++ #IT디자이너 #함수 #재귀 함수 #스택 #자료구조 #페인팅
- QUEUE #큐 #자료구조 #원형 큐 #Circle Queue #IT디자이너 #큐 과제 #C언어 #C++언어
- C언어 #C++ #switch #if #어셈블리어 #switch문 사용 이유 #IT디자이너
- C언어 #C++ #자료구조 #알고리즘 #IT디자이너 #버블 정렬 #BubbleSort
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |