일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 정보처리기사
- SSG
- 핵심 요약
- Time
- 충무창업큐브
- 미가공
- 유료강좌
- MFC
- MyTread
- mfc 실습
- do it c
- ListBox
- C++
- 실습
- win32
- linux
- 정처기 독학
- mysql
- 별찍기
- MFC 예제
- C언어
- 도움말
- visual
- MyThread
- C
- 포트폴리오
- Tipsware
- tips강좌
- 김성엽
- 마이크로소프트
- Today
- Total
목록분류 전체보기 (220)
History
- Heap Memory는 프로그램에서 동적으로 할당된 메모리를 관리하는 데 사용되는 영역이다. - 운영체제는 프로그램이 실행될 때 프로그램에 메모리 공간을 할당한다. 이 공간은 stack과 heap으로 구분된다. - stack은 지역 변수와 함수 호출 시 생성되는 변수들을 저장하는 영역이고, heap은 동적으로 할당되는 메모리를 저장하는 영역이다. - heap Memory는 프로그램에서 필요한 만큼 동적할당해서 사용한다. 대표적으로 malloc, calloc, realloc, new와 같은 함수(new는 연산자)로 heap 영역에 메모리 할당이 가능하며 메모리 주소를 반환한다. - 반환된 주소는 포인터 변수에 저장되며, 이 포인터 변수를 통해 할당된 메모리에 접근 가능하다. - heap 메모리는 sta..

1. 운영체제 - 하드웨어는 여러 장치들로 구성되어 있다. - 각 장치는 사용 한계치가 있기 때문에 개별적인 관리가 필요하다. 위와 같은 이유로 컴퓨터를 구성하는 하드웨어를 공부하거나 이해할 필요 없이 각 장치들을 제어할 수 있도록 도와주고 장치의 한계치를 관리하고 보호하는 소프트웨어가 필요하다. 이것이 운영체제(Operating system O/S)이다. 위 그림처럼 운영체제가 컴퓨터 유저와 하드웨어 사이에서 끼어있는 모습이다. 2. 응용 프로그램과 API - 개발자들이 해당 운영체제에서 동작하는 프로그램을 개발 할 수 있는데 이것을 응용 프로그램이라고 한다. - 개발자들은 일반 사용자보다 효과적으로 하드웨어와 운영체제가 관리하는 정보에 접근할 수 있다.(일반 사용자는 제어판 혹은 탐색기로 접근 가능)..

이번글은 프로젝트 속성 페이지인 구성 속성에 대해 알아보도록 하겠다. 프로젝트의 "구성 속성"은 해당 프로젝트의 빌드 및 실행과 관련된 여러 설정을 포함한다. 이러한 설정을 통해 프로젝트의 동작을 세부적으로 제어하고 조정할 수 있다. 가장 많이 쓰는 핵심적인 5가지만 정리해 보았다. 1. 출력 디렉터리 이 속성은 해당 프로젝트가 컴파일이 됐을 때 프로그램이 배치될 경로이다. 보통 건드리지 않았다면 아래와 같이 매크로가 지정이 됐을 것이다. $(SolutionDir)$(Configuration)\ 2. 중간 디렉터리 빌드 프로세스에서 생성된 파일이나 중간 결과물이 저장되는 디렉터리이다. 주로 소스 코드 파일을 컴파일하고 링크한 후에 생성된 중간 바이너리 파일, obj 파일 등이 임시로 저장되는 공간이다. ..

이전 빌드를 해결하고 다시 빌드를 돌렸더니, 이번엔 C1083 오류가 나왔다. 이 오류 코드에 대한 문제의 원인은 MS 공식 도움말을 참고해서 몇 개 적어보겠다. 1. 지정한 파일 이름이 잘못된 경우 원하는 .h 파일 이름 확장명이 없다. 예를 들어서 include 지시문에서 올바른 철자로 include를 했으면 오류가 안 난다는 말이다. 또한 하위 디렉터리에 있는 헤더를 include를 해야할 상황이라 아래와 같이 선언을 해줘야 한다. #include 2. 잘못된 버전의 파일 이름이 포함된 경우 현재 x86으로 빌드 중일 때만 #include가 적용될 때가 있다. 이때 include를 잘 확인해야 한다. 3. 파일이 포함 검색 경로에 포함되지 않음 include문이 따옴표로 묶인 경우 이렇게 하면 컴파..

계속 같으면서도 다른 이유로 컴파일 오류가 발생하는 것을 이제 문서로 정리해서 올리려고 한다. 서로 다른 케이스로 반복되니까 시간을 하도 많이 뺏겨서 이젠 내가 내 블로그에서 찾으면 어지간한 오류는 해결할 수 있게 만들도록 해보겠다. DLL을 업데이트하는 작업 하다가 이런 오류를 만났다 오류 설명글을 보니까 static_assert에 걸린 것 같다. 여기까지 읽어서는 어디가 문제인지 모르겠다. 계속 읽어보면 마지막 줄에 WINDOWS_IGNORE_PACKING_MISMATCH defined라는 문구가 있다. 뭔가 이걸 검색하면 뭐라도 나오지 않을까 구글링을 해본 결과 4년 전 네덜란드 개발자가 이러한 문제로 질문을 올린 적이 있어서 답변을 참고해서 해결했다. 방법은 아래와 같다. 해당 프로젝트 속성-> ..

버그의 종류는 크게 2가지로 나뉜다. 1. 문법상 코드를 잘못 작성해 발생하는 문법오류. 2. 문법상 문제는 없지만 예상치 못한 결과가 발생하는 논리적 오류. 문법 오류는 IDE의 인텔리센스가 경고를 띄워주기 때문에 대처가 가능하지만, 논리적 오류는 코드상 문제가 아니라 들어온 데이터, 수식 상 문제 등으로 발생하는 것이기 때문에 어느 위치에서 오류가 발생했는지 알기 쉽지 않다. #include #pragma warning(disable:4996) int Func(int a_value) { int temp=5; temp /= a_value; return temp; } int main() { int ans=Func(0); } 간단히 위와 같은 코드로 예시를 들겠다. 위 코드에서 인자값으로 0을 줬고 인자값..

c언어에서는 올림(ceil)과 내림(floor) 함수는 지원하지만 반올림 함수는 따로 지원하지 않는다. ceil과 floor함수는 math.h를 include 해줘야 사용할 수 있는 라이브러리 함수이다. float data1=1.75452; float data2=0.1353; 위처럼 float형 data1과 data2라는 변수를 선언하고 초기화한다. data1을 기준으로 ceil을 사용하면 2.000000이 나올 것이고 floor을 하면 1.000000이 나온다. 난 floor을 활용하여 반올림을 간단하게 구현해보도록 하겠다. #include #include #pragma warning(disable:4996) int main() { float data1=1.75452; float data2=0.1353..

리눅스란? - 운영체제(OS: Operating System) 리눅스의 종류 - ubuntu, centos, Fedora 등등 다양한 종류가 있다. 그럼 이것들은 전부 같은 리눅스일까?라고 맞다. 그러나 각각의 차이점이 존재한다. 공통점 1. 리눅스 커널을 사용한다.(Linux kernel) 2. GNU Software를 사용하고 있다. -> GNU는 소프트웨어 만드는 단체라고 생각하면 된다. 차이점 1. 데스크탑 관리자 (gnome, KDE) 2. 패키지 매니저 (apt, yum, rpm) 3. 기본 파일 시스템 등등 운영체제(OS: Operating System) 리눅스가 운영체제이기 때문에 간략하게 운영체제에 대해서 글을 적겠다. 운영체제의 정의 - 컴퓨터의 하드웨어와 소프트웨어 자원을 관리하는 시..