본문 바로가기
반응형

C10

gcc/g++ 분할 파일 컴파일 하기. C언어. 1. 함수 등록. 123456789101112// test.c #include int add(int a, int b); int main(){ printf("%d\n", add(1, 2)); return 0;} cs 123456// add.c int add(int a, int b){ return a + b;} cs 명령어. $ gcc test.c add.c (오브젝트 파일 과정과 실행파일 지정 생략 가능) 2. 헤더 파일선언 1234567891011// add.h #ifndef _ADD_H_#define _ADD_H_ #include int add(int a, int b); #endif cs 123456// add.c int add(int a, int b){ return a + b;} cs 123.. 2020. 5. 17.
프로그래머스] C++ 해시 - 베스트앨범(Level 3) 해당 문제는 프로그래머스 코딩테스트 연습에 있는 문제입니다. 아래 링크를 통해 풀 수 있습니다. https://programmers.co.kr/learn/courses/30/lessons/42579 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호.. 2020. 1. 30.
C/C++ IPC인 mailslot에 대한 이해 Mail Slot은 프로세스간에 데이터를 주고받기 위한 방식중 하나입니다. 프로세스는 기본적으로 자신에게 할당된 메모리를 공유할 수 없기 때문에 여러가지 방법으로 데이터를 주고 받습니다. Mail Slot은 파일에 데이터를 적어 놓고 다른 프로세스들이 해당 파일에 접근해서 데이터를 읽어오도록 합니다. 따라서 파일을 읽을 수 있는 함수인 ReadFile() 함수와 데이터를 작성할 수 있는 WriteFile() 함수가 사용됩니다. MailSlot의 특징은 다음과 같습니다. 1. 단방향 통신이다. CreateMailslot() 함수로 보낼 메일 슬롯의 파일을 생성하고 WriteFile()함수를 통해 입력을 하게되고 CreateFile() 함수를 통해 파일을 열어 해당 내용을 읽어올 수 있는 ReadFile().. 2020. 1. 16.
C/C++ 뇌를 자극하는 윈도우 운영체제 프로젝트 2. 윤성우 저자께서 작성하신 "뇌를 자극하는 윈도우 운영체제"의 실습 2번입니다. C언어로 만들어져 있으며 다음과 같은 요구사항을 말하고 있습니다. 1. start 입력시 자식프로세스 생성. 2. start echo "문자열" 입력시, 자식프로세스 생성 후 해당 문자열 출력. 저는 C++을 사용해 구현했으며, Boost의 tokenizer를 사용했습니다. 만든 visualstudio 는 2019 버전을 사용했으며, 다른 버전 사용 시 echo_console.exe 파일 경로가 다를 수 있습니다. 소스코드는 아래와 같습니다. main.cpp #include #include #include #include #include #include #include using namespace std; typedef bas.. 2019. 12. 29.
C/C++ 프로세스 생성하기. C/C++에서 프로세스를 생성하는 방법은 다음과 같습니다. CreateProcess() 함수를 통해 생성하는 방법입니다. CreateProcess() 함수는 다음과 같이 정의되어 있습니다. BOOL CreateProcess{ LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURTIY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCTSTR lpCurrentDirectory, LPSTARTUPINFO lpStartupInfo, LPPROCESS_INFO.. 2019. 12. 29.
c/c++ TCHAR 정리. 요즘은 문자를 처리할 때 유니코드를 주로 사용합니다. WBCS라고 하며 모든 문자와 숫자를 2바이트로 처리합니다. 모든 프로그램이 유니코드를 사용하면 좋겠지만.... 실상은 아니죠. 초창기, 문자열 처리는 아스키코드로 사용해왔고, 아스키 코드는 1바이트로 구성됩니다. 그리고 초창기부터 사용되어 왔던 아스키코드를 지금도 사용하고 있죠. C/C++에선 유니코드를 사용함에 따라 문자열 처리를 1바이트와 2바이트 이 두개를 신경써서 해야 했고, 결론적으로 유니코드를 처리할 수 있는 자료형을 만들어 냅니다. 바로 앞에 w를 붙인 자료형이죠. 아래 자료형 선언은 헤더파일에 정의되어 있습니다. (정확히 말하자면 winnt.h에 있지만 이 해더파일을 Windows.h가 포함하고 있습니다.) char = 1바이트 wch.. 2019. 12. 29.
2020 카카오 블라인드 공채 문제 2번 설명 및 풀기 문제 풀러가기 완성된 코드 #include #include #include using namespace std; int index; bool check(const string& p){ int left = 0, right = 0; bool ret = true; stack s; for(int i = 0; i < p.size(); i++){ if(p[i] == '('){ left++; s.push('('); }else{ if(s.empty()) ret = false; else s.pop(); right++; } if(left == right){ index = i + 1; return ret; } } return ret; } string solution(string p) { if(p == "") return ".. 2019. 12. 11.
2020 카카오 공채 : 문자열 압축 (풀이 및 코딩) 조건은 s의 길이가 1 이상 1,000 이하.... 모든 알파벳은 소문자 입니다. 해당 코드는 2중 for문으로 충분히 풀이가 가능하고 탐색 조건도 쉽습니다. 앞에서부터 문자들을 차례대로 비교하면 됩니다. 처음엔 1개씩, 그 다음 2개, 그 다음 3개 ..... (s의 총 길이 / 2) 개 까지... 비교문자 마지막을 왜 s의 총 길이 / 2로 했냐면 그 이상 넘어가 버리면 비교의 의미가 없기 때문입니다. (비교할 수가 없죠) 그래서 예제 1번을 보면 aabbaccc 이렇게 있는데, 처음엔 a, a, b, b, a, c, c 하나씩 비교하고, 그 다음엔 aa, bb, ac, cc 이렇게 2개씩 비교하고, 그 다음엔 aab, bac, cc 이렇게 3개씩 비교하고..... 이런식으로 비교한 후 중복되는 알파.. 2019. 11. 23.
C언어] 포인터(2) 사용법 포인터의 사용법은 이렇습니다. 선언 후 초기화. int num = 10; int *p; p = # 선언과 동시에 초기화 int num = 10; int *p = # 여기서 &num은 주소 값을 전달한다는 의미 입니다. 배열도 포인터가 됩니다. int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int *p = arr; printf("%d\n", p[3]); 즉 포인터 변수에 배열의 시작 주소 값을 받으면 포인터 변수는 배열처럼 사용이 가능 합니다. 그럼 여기서 의문점이 하나 생깁니다. "&arr로 주지 않고 arr로만 줬는데 주소 값이 넘어갔내?" 원래 배열의 값을 표현할 때는 arr[0] 이런식으로 표현 합니다. 하지만 뒤에 대괄호를 빼고 arr만 표.. 2019. 1. 19.
포인터(1) 기초 이해 우리가 보통 'int num=10' 이라는 변수를 선언하면 메모리 상에는 4바이트(int형이니깐)짜리 메모리 할당이 이루어지게 됩니다. 메모리구조에 대해서는 나중에 설명하겠지만 일단 필요한 부분만 설명하겠습니다. 저희가 사용하고 있는 일반적인 PC의 메모리는 32비트 기준 0x00000000~0xFFFFFFFF까지 있습니다. (메모리는 16진수로 나타내며 10진수로 표현하면 4,294,967,296바이트를 사용할 수 있는 것입니다. ) ------------------------------------------------------------------------------------------------------------------------------------- 잡소리를 좀 하자면 ㅎㅎ Wind.. 2018. 6. 24.
반응형

스킨편집 -> html 편집에서