일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- github
- 플러터
- git
- Flutter
- 다트 언어
- c언어
- Python
- docker
- c#
- jupyter lab
- c# winform
- Algorithm
- Data Structure
- C# delegate
- vim
- HTML
- c# 윈폼
- 구조체
- dart 언어
- Unity
- 도커
- 깃
- C++
- gitlab
- 포인터
- C언어 포인터
- 유니티
- Houdini
- jupyter
- c# 추상 클래스
- Today
- Total
목록분류 전체보기 (507)
nomad-programmer
#include #include #include void Menu(){ puts(""); puts("1. 문자열 입력"); puts("2. 문자열 삭제"); puts("3. 문자열 출력"); puts("4. 문자열 정렬"); puts("5. 종료"); } void ClearBuffer(){ while(getchar() != '\n'); } char* Input(){ char temp[100]; char* str; printf("100자 이하의 문자 입력: "); scanf("%s", temp); ClearBuffer(); str = (char*)malloc(sizeof(char)*strlen(temp)+1); strcpy(str, temp); return str; } void Remove(char* st..
다음은 9 X 9 배열을 포인터 변수 int (*arr)[3][3]에 저장하여 메모리에 사용하는 응용 예제이다. #include #include typedef int (*ARR9)[9]; typedef int (*ARR33)[3][3]; // int (*arr)[9] void PrintArray(ARR9 arr){ for(int i=0; i
원하든 그림과 회사 이름 등을 넣으면 자동으로 로고를 만들어주는 사이트를 소개한다. app.logopony.com/en/details/ Logopony app.logopony.com 이렇게 자동으로 만들어주는 로고를 참고하여 더 창의적인 로고를 생성하면 좋을 듯 싶다.
다음은 쉬프트 비트 연산을 이용하여 4바이트를 2바이트로 분할하는 예제이다. #include #define LOWORD(x) ((unsigned short)x) #define HIWORD(x) ((unsigned int)x >> 16 & 0xFFFF) int main(int argc, const char * argv[]) { int n = 0x44434241; printf("%x\n", LOWORD(n)); printf("%x\n", HIWORD(n)); return 0; } */ 결과 4241 4443 */ 다음은 1바이트의 두 정수를 2바이트로 2바이트의 두 정수를 4바이트로 결합하는 예제이다. #include typedef unsigned char BYTE; typedef unsigned short..
XOR를 이용하면 손쉽게 데이터를 교환할 수 있다. 예를 들어, 연산 결과를 F라 하면 F^a 는 b가 되고 F^b는 a가 된다. 다음의 예제를 살펴보자. #include // 매크로를 이용한 데이터 교환 #define SWAP(a, b) { a^=b; b^=a; a^=b; } // 함수를 이용한 데이터 교환 void Swap(int* a, int* b){ *a ^= *b; *b ^= *a; *a ^= *b; } int main(int argc, const char * argv[]) { int a = 10; int b = 20; printf("a: %d, b: %d\n", a, b); Swap(&a, &b); printf("a: %d, b: %d\n", a, b); SWAP(a, b); printf("a..
가변 인자가 특정 자료형이 아닌 여러 자료형이 전달된다면 첫 번째 인자에 인자의 개수와 자료형의 정보까지도 전달해야 한다. 그래서 printf()와 같은 함수는 첫 번째 인자를 문자열로 만들고 '%c, %d, %s' 등을 사용하여 자료형과 인자의 개수를 전달한다. '%c' 이면 문자를 인자로 전달하고, '%d' 이면 정수를 인자로 전달하고, '%s' 이면 문자열의 시작 주소를 인자로 전달한다. #include #include #include void MiniPrintf(char *fmt, ...){ int i = 0; va_list ap; va_start(ap, fmt); while(fmt[i] != '\0'){ if(fmt[i] != '%'){ putchar(fmt[i]); } else{ switch(..
포인터의 선언과 그 포인터의 의미 단순한 포인터 선언 타입 의미 int* np; 1차원 포인터 int형의 주소를 저장 int** npp; 2차원 포인터 int형의 2차원 주소를 저장 단순한 배열 선언 타입 의미 int arr[3]; 1차원 배열 int형 값들을 저장 int arr[2][3]; 2차원 배열 int형 값들을 저장 배열과 포인터 선언 타입 의미 int* arr[3]; 1차원 포인터 배열 int형 주소값 3개를 저장 int (*arr)[3]; 2차원 배열 포인터 포인터 연산시, int형 3개를 건너뛰는 2차원 배열 포인터이며 2차원 배열의 주소를 저장 int (*arr)[2][3]; 3차원 배열 포인터 포인터 연산시, int형 2x3개를 건너뛰는 3차원 배열 포인터이며 3차원 배열의 주소를 저장..
구조체는 멤버 변수들의 크기에 따라 구조체의 크기가 결정되지만 구조체의 크기를 예측하여 동적 메모리를 생성하거나, 파일에 저장하거나, 네트워크에 전송하는 등의 작업을 하면 예상했던 구조체의 크기와 달라 오류가 발생하는 경우가 있다. 이유는 컴파일러가 프로그램 성능을 향상시키기 위하여 일정한 크기 형태로 구조체 변수들을 주소에 매핑시키기 때문이다. 매핑 : 패딩 바이트를 추가한 바이트 정렬 그래서 구조체의 크기는 모든 멤버 변수 크기의 합과 다를 수 있다. 다음은 구조체의 크기를 출력하는 예이다. #include typedef struct { char c; int n; } _data1; typedef struct { short s; int n; } _data2; typedef struct { int n1;..
컴퓨터는 메모리에 0과 1만을 저장할 수 있으므로 컴퓨터는 문자를 표현하기 위해 각각의 문자와 대응하는 숫자를 정의하고 있는데 이것을 문자 코드라 한다. 대표적인 문자 코드가 ASCII 코드이며 영문자, 숫자, 기호 등을 ANSI 라는 표준화 기구에서 정의한 7비트 문자 코드(0~127) 이다. 그래서 ASCII코드를 ANSI코드라고도 한다. 정확히 말하면 ANSI코드는 ASCII 코드에 1비트를 더확장(128~255)하여 정의한 8비트 문자 코드이다. C언어에서는 ASCII코드를 사용하여 문자를 표현한다. 사실 ASCII코드 외에도 많은 문자 코드가 존재하며 문화, 지역, 나라, 운영체제, 성능 등 여러 가지 요소들에 따라 문자 코드의 정의와 사용이 다랄져야 하기 때문에 문자 코드는 상당히 복잡하다. ..
무료로 텍스처 데이터를 다운받을 수 있는 사이트를 소개한다. 다음의 주소로 이동하면 많은 텍스처를 볼 수 있다. 그 중에 마음에 드는 것을 클릭하여 다운로드받을 수 있다. www.textures.com/ Textures.com Textures for 3D, Graphic Design and Photoshop 15 Free downloads every day! www.textures.com 다음은 해상도가 높은 이미지를 무료로 다운받을 수 있는 사이트이다. pixabay.com
수학 수식을 넣으면 그래프를 그려주는 프로그램을 소개한다. 오픈 소스이므로 무료로 사용할 수 있다. www.padowan.dk/ Graph | Plotting of mathematical functions Graph is an open source application used to draw mathematical graphs in a coordinate system. Anyone who wants to draw graphs of functions will find this program useful. The program makes it very easy to visualize a function and paste it into another progra www.padowan.dk 위의 주소로 이동 후..
함수를 정의할 때 함수 내부에서 다른 함수를 정의할 수 있다. def outer(): a = 10 def inner(): b = 20 코드에서 outer() 함수에서 지역 변수 a가 선언되었고, 중첩된 함수 inner() 함수에 지역 변수 b가 선언되었다. 한 가지 생각해 볼 문제는 inner() 함수에서 outer() 함수의 지역 변수인 a를 변경할 수 있는지이다. 변수 a는 outer() 함수 입장에서는 지역 변수지만 inner() 함수 입장에서는 지역 변수가 아니다. inner() 함수의 지역 변수는 b이다. a = 1 def outer(): b = 2 c = 3 print(a, b, c) def inner(): d = 4 e = 5 print(a, b, c, d, e) inner() outer()..
인디 게임 개발하면서 유용하게 사용할 수 있는 효과음을 제작할 수 있는 사이트이다. sfbgames.itch.io/chiptone ChipTone by SFBGames Free game sound effects tool sfbgames.itch.io
아래의 사이트로 이동한 후 자막을 다운로드할 유튜브 주소를 넣고 "다운로드" 버튼을 클릭하면 다운 받을 수 있는 자막 파일들을 볼 수 있다. downsub.com/ Download subtitles from Youtube, Viki, Viu, Vlive and more DownSub is a free web application that can download subtitles directly from Youtube, Drive, Viu, Vimeo, Viki, OnDemandKorea, Vlive and more. downsub.com
C:\ 를 SSD로 사용중이다. 그런데 Unreal Engine 과 프로젝트 몇 개를 생성하였더니 용량이 확 줄어 들었다. 그래서 큰 용량의 HDD에 캐시를 저장하는 방식으로 해야한다. 간단하다. 기본적으로 다음과 같은 경로에 컴파일 된 캐시 및 여러 캐시들이 쌓이는데 모두 삭제한다. 단, 혹시 모르니 DerivedDataCache 디렉토리안에 있는 내용만 삭제하고 DerivedDataCache 디렉토리는 놔둔다. C:\Users\\AppData\Local\UnrealEngine\Common\DerivedDataCache 그리고 C:\드라이브에서 D:\드라이브로 캐시 경로를 옮기면 끝이다. 다음의 경로에 언리얼 엔진이 설치되어 있을 것이다. 해당 경로에 가서 "BaseEngine.ini" 파일을 연다. ..
SVG(Scalable Vector Graphics)는 벡터 그래픽을 표현할 때 사용하는 형식이다. 원래 SVG 태그는 인터넷 익스플로러 8 버전 이후의 인터넷 익스플로러에서만 지원하는 기능이었다. 하지만 HTML5부터는 SVG 태그가 표준으로 제정되어 모든 웹 브라우저에서 사용할 수 있게 되었다. 기존의 플래시가 벡터 이미지를 사용했으므로 SVG 태그를 사용하면 플래시 콘텐츠를 쉽게 HTML5로 변환할 수 있다. 기본적인 사용 방법 다음과 같이 HTML 페이지를 구성하고 body 태그안에 sav 태그를 입력한다. svg 태그는 width 속성과 height 속성을 반드시 사용해야 한다. svg 태그 내부에는 SVG 관련 태그를 입력한다. fill 속성을 사용해 색을 칠한다. 선은 stroke 속성을 사..
Sass & SCSS 란 무엇인가? CSS 전처리기 (CSS pre-processor)라 불리는 Sass(Syntactically Awesome StyleSheet)는 CSS의 단점을 보완한 CSS의 확장형이다. CSS 전처리기 종류에는 대표적으로 Sass(SCSS), Less, Stylus 등이 있다. Sass는 2006년부터 시작하여 가장 오래된 CSS 확장 언어이다. 그 만큼 높은 성숙도와 많은 커뮤니티를 가지고 있고 기능도 훌륭하다. SCSS는 Sass의 3버전에서 새롭게 등장하였다. SCSS는 CSS 구문과 완전히 호환되도록 새로운 구문을 도입해 만든 Sass의 모든 기능을 지원하는 CSS의 상위 집합(Superset)이다. 한마디로 SCSS는 Sass를 더 편리하고 CSS답게 수정한 버전이다...
스타일시트를 더 쉽게 사용하고자 다양한 스타일시트 엔진들이 등장했다. 스타일시트 엔진은 특정한 형태의 스타일시트를 CSS 스타일시트로 변경해주는 변환 엔진(컴파일러) 이다. 일반적으로 많은 사용하는 스타일시트 엔진으로는 Sass 스타일시트 엔진과 Less 스타일시트 엔진등이 있다. 공식 홈페이지 lesscss.org/ Getting started | Less.js Less (which stands for Leaner Style Sheets) is a backwards-compatible language extension for CSS. This is the official documentation for Less, the language and Less.js, the JavaScript tool that..
주석 스타일 속성 이름 설명 /* 주석 */ 부가 설명 폰트 관련 속성 스타일 속성 이름 설명 font 폰트 font-family 폰트 종류 font-size 폰트 크기 font-style 폰트 형태 font-variant 폰트 변형 font-weight 폰트 두깨 변환 관련 속성 스타일 속성 이름 설명 transform 변환 transform-origin 변환 중심 transform-style 변환 형태 perspective 투시 수치 perspective-origin 투시 중심 backface-visibility 후면 가시성 애니메이션 관련 속성 스타일 속성 이름 설명 animation 애니메이션 animation-name 애니메이션 이름 animation-duration 애니메이션 진행 시간 ani..
주석 태그 이름 표시 형태 설명 부가 설명 HTML 구조 태그 태그 이름 표시 형태 설명 block 문서 형태 none 문서 자체 none 문서 머리 none 문서 제목 none 문서 추가 정보 block 문서 본문 파일 태그 태그 이름 표시 형태 설명 none 외부 파일을 추가한다. none 스타일시트 none 스크립트 공간 태그 태그 이름 표시 형태 설명 block block 형식의 공간 inline inline 형식의 공간 시멘틱 구조 태그 태그 이름 표시 형태 설명 block 본문 block 수직 목록 block 네비게이션 목록 block 구역 block 머리 block 꼬리 시멘틱 요소 태그 태그 이름 표시 형태 설명 block 그림 block 그림 제목 block 세부 설명 block 요약 i..