본문 바로가기

전체 글

(68)
화면 그리기 Epic Pen Epic Pen: The worlds most popular screen marker app! let's work together Contact Us It would be great to hear from you! If you got any questions, please do not hesitate to send us a message. We are looking forward to hearing from you! We reply within 24 hours! epic-pen.com 타블렛 압력 감지도 지원합니다.
구조체 정렬 및 원리 struct pack { char a; int b; }; sizeof(pack); 여기서 sizeof(pack)의 값 즉, 구조체의 크기는 5가 될 수도 있지만 다른 값이 될 수도 있습니다. 다른 값이 나오는 이유는 구조체를 정렬하기 때문입니다. 구조체를 정렬하면 프로그램 성능 향상을 위해 구조체의 각 멤버 사이에 특정 크기의 공간을 비워둡니다. struct pack2 { char a; char b; int aa; }; struct pack3 { char a; int aa; char b; }; 위의 구조체들이 4바이트 정렬돼있다고 가정했을 때의 구조는 다음과 같습니다. (1)은 pack2, (2)는 pack3, (3)은 1바이트로 정렬되었다고 가정했을 때의 pack2입니다. 일단 (1)에서 a는 A 블록..
비트 구조체 비트 구조체는 비트 멤버를 포함한 구조체인데 비트 멤버는 원래 타입 크기보다 작게 크기를 지정할 수 있는 멤버입니다. struct { (변수 타입) (이름):(비트 크기); ... }; 만약 int a:4;인 경우 4비트의 크기를 가진 int 멤버를 생성합니다. 그래서 원래 int와 달리 나타낼 수 있는 숫자 범위가 적습니다. struct { int a:4;//위치 0비트 int b:12;//위치 4비트 int c:16;//위치 16비트 };//총 크기 32비트 비트 멤버의 타입은 실수가 아닌 단일 숫자 타입만 가능합니다. 즉, 실수나 배열, 구조체 등은 안됩니다. 비트 멤버의 크기를 원래 타입 크기보다 크게 지정할 경우 오류가 납니다. 예를 들어 int의 원래 크기인 32비보다 크게 지정하면 안 됩니다..
키보드 단축키 모음 (위키 링크) https://namu.wiki/w/%ED%82%A4%EB%B3%B4%EB%93%9C%20%EB%8B%A8%EC%B6%95%ED%82%A4
구조체 구조체를 사용하면 여러 개의 데이터를 한 변수에 넣을 수 있습니다. 형식: struct (구조체 이름) { (변수목록) }; (구조체 이름) (변수 이름);//(구조체 이름)타입의 변수를 생성 +구조체를 만들면서 변수를 초기화하기 struct (구조체 이름) { (변수목록) }(변수 이름); 또는 구조체 이름을 생략하면서 구조체를 만들면서 초기화할 수 있습니다. 이러면 해당 구조체 이름이 없으므로 그 타입의 다른 변수를 정의할 수 없습니다. struct { (변수목록) }(변수 이름); 예제 : struct pack { int num; char ca; }; pack a; struct pack2 { int num; int num2; }b; struct { int num,num2,num3; }c; 구조체 변..
main 함수 이전 글에서 많이 배웠으니 이제 main함수에 대해 자세히 알아보겠습니다. int main() {} int main(int argc, char* argv[]) {} int main(int argc, char* argv[], char* envp[]) {} C++ 프로그램이 시작될 때 이 함수의 내용이 먼저 실행되고, 즉, 반드시 필요한 함수입니다. argv는 실행 시 쓰여진 명령 줄 문자열 값 배열이고, argc는 배열의 개수입니다. 예를 들어 콘솔에서 test.exe a b c로 실행했을 때 배열 값은 test, a, b, c 개수는 4개가 됩니다. envp은 시스템 환경 변수가 담긴 배열입니다. 마지막 배열 인수가 0인 것으로 갯수를 알 수 있습니다. 여기서 main함수 리턴타입을 void로 하는것을 ..
문자, 문자열 C/C++에서는 한 글자를 문자라고 하고 문자 타입은 char입니다. char c = 'a'; 이처럼, c에는 a 한 글자가 저장되었고 한 글자를 표현할 때는 작은따옴표를 사용합니다. 그리고 문장을 표현할 때는 문자의 배열을 사용하여 표현하는데 이를 문자열이라고 합니다. char str[] = {'h','e','l','l','o','\0'}; 이렇게 해도 되지만 보통 다음과 같 큰따옴표를 사용해 초기화합니다. char str[] = "hello"; '\0'은 널문자라고 해서 문자열의 끝을 알려주는 숨겨진 문자입니다. 큰따옴표로 문자열을 표현할 때는 생략해도 마지막에 널 문자가 붙습니다. 그리고 문자열 상수라는 것이 있는데 이는 문자열처럼 문자 배열을 표현하지만 내부의 문자 값을 바꿀 수 없는 대신 문자열..
다중 배열 다중 배열은 배열의 배열이며 중첩 횟수에 따라 2차원, 3차원,.. 배열이라고 합니다. int가 5개 들어있는 배열이 4개 들어있는 배열을 선언할 땐 다음과 같이 합니다. int a[4][5];//오른쪽부터 왼쪽으로 이 배열을 순서대로 참조하면, a[0][0], a[0][1], a[0][2],... a[1][0] 이 순서가 됩니다. 여기서 a[0], a[1]..도 a 배열 속의 배열입니다. 따라서 일반 배열 처럼 전체를 수정할 순 없습니다. 2차원 배열을 초기화하려면 다음과 같이 합니다. int a[4][5] = {{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}}; 이때 배열 개수 하나를 생략할 수 있습니다. int a[][5] = {{1,2,3,4,5},{1,2,3..