본문 바로가기
반응형

컴퓨터892

[C] struct 내부에 함수 사용하기 C에서 struct 내부에 함수 포인터를 정의하여 C++의 class 멤버 함수 비슷하게 사용할 수 있다. C struct에 함수를 정의하는 방법은 다음과 같다. #include void Box_Add(int x); struct { int Value; void (*Add)(int x); } Box; int main() { Box.Add = Box_Add; Box.Value = 1; printf("Value=%d\n", Box.Value); Box.Add(5); printf("Value=%d\n", Box.Value); return 0; } void Box_Add(int x) { Box.Value += x; } 2023. 4. 7.
[C#] if 뒤에 탭을 치면 자동 완성되는 기능 해제 Visual Studio에서 기본적으로 if for 등의 명령어 뒤에서 탭을 치면 다음과 같이 자동 완성된다. 이 기능을 해제하는 방법을 찾는것이 생각보다 어렵다. 탐색기로 아래의 Snippets 폴더로 간다. C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC#\Snippets\1042\Visual C# 이 폴더에 아래와 같은 파일 있는데 이 파일들을 삭제하면 된다. 만약을 위해 압축한 후 파일을 삭제한다. 아래는 압축 후 파일 삭제한 폴더 2023. 4. 7.
[C] 범위 제한 매크로 타입 #1 #define ConstrainVal(val,min,max) ( (val > max) ? (max) : ( (val max) ? (val=max) : ( (val 2023. 4. 7.
[C#] serialPort 버퍼 크기 serialPort의 디폴트 읽기 버퍼 크기는 4096바이트이고 쓰기 버퍼 크기는 2048바이트이다. 속성창에서 ReadBufferSize와 WriteBufferSize 속성으로 변경하여 버퍼 크기를 변경할 수 있다. 버퍼 크기가 작으면 큰 데이터를 읽거나 쓸 때 데이터가 깨지는데 별도의 에러 메세지가 뜨지 않기 때문에 문제를 찾기 어렵다. 2023. 4. 5.
[C#] tabControl에서 Button의 PerformClick 문제 PerformClick은 Button을 누르는 메세지를 발생시킨다. 하지만, tabControl에서는 활성화된 tab의 Button만 PerformClick이 실행된다. 비활성화된 tab에 있는 Button에서는 PerformClick이 실행되지 않는다. tab을 변경할 때 PerformClick을 실행하면 정상적으로 동작하지 않는다. 2023. 4. 5.
[C#] 다아알로그 창 띄우기 C#에서는 Form과 Dialog에서 동일한 Form을 사용한다. Form을 나타내는 코드는 다음과 같다. Form1 frm1 = new Form1(); frm1.Show(this); Dialog을 나타내는 코드는 다음과 같다. Form1 frm = new Form1(); frm1.ShowDialog(); Dialog에서 Ok나 Cancel 버턴 입력을 받는 방법 부모폼 Form1 frm = new Form1(); DialogResult result = frm.ShowDialog(); if(result == DialogResult.OK) { } Dialog 자식폼 Ok 버턴 처리는 다음과 같다. private void button1_Click(object sender, EventArgs e) { this.. 2023. 4. 1.
Visual Studio Code 탭 스페이스 자동 변환 해제 Visual Studio Code는 디폴트로 탭이 스페이스로 자동 변환된다. 이것을 해제하려면 다음의 2개를 설정해야 한다. Tab Completion을 off로 하고 Detect Indentation을 체크 해제한다. 2023. 3. 26.
NuGet 뜻 NuGet은 C#의 공유 코드 관리자이다. NuGet은 Visual Studio 2012부터 사용할 수 있다. Visual Studio C#의 프로젝트 메뉴에서 'NuGet 패키지 관리'를 선택한다. ☞ NAudio 설치 방법 2023. 3. 19.
음악 소리로 노래 제목 찾기 네이버 앱에서 음악 소리로 노래 제목을 찾을 수 있다. 1. 네이버 앱에서 아래의 둥근 녹색 버튼을 클릭한다. 2. 음악 버튼을 클릭한다. 3. 소리를 입력 받아 노래 제목을 찾아준다. 2023. 3. 16.
[C#] 윈도우 항상 위에 표시 윈도우 폼을 항상 위에 표시하기 위해서는 다음과 같이 한다. this.TopMost = true; 항상 위 기능을 메뉴에 사용하는 방법은 다음과 같다. private void alwaysTopToolStripMenuItem_Click(object sender, EventArgs e) { if(alwaysTopToolStripMenuItem.Checked==false) { alwaysTopToolStripMenuItem.Checked = true; this.TopMost = true; } else { alwaysTopToolStripMenuItem.Checked = false; this.TopMost = false; } } 2023. 3. 15.
Visual Studio Code 자동 괄호 해제 Visual Studio Code에서 괄호 {나 주석 /*을 입력하면 자동으로 닫히는 } 나 */이 입력되는데 이것을 막는 방법은 다음과 같다. 설정에서 bracket을 입력하고 Auto Closing Brackets을 never로 설정한다. 2023. 3. 11.
윈도우 11 탐색기 파일 간견 줄이기 윈도우 11는 이전 버전 윈도우보다 탐색기의 파일이름의 위아래 간견이 넓다. 파일 간견을 줄이기 위해서는 다음과 같이 옵션을 선택한다. 폴더 옵션에서 다음과 같이 '항목 간 공간 축소(압축 보기)'를 선택한다. 보기에서 간단히 보기로 파일 위아래 간견을 넓히거나 줄일 수 있다. 2023. 3. 7.
레노버 노트북 커버 열때 켜지는 옵션 레노버 노트북을 처음 사면 노트북 커버를 열때 컴퓨터가 자동으로 켜진다. 노트북 커버를 열때 컴퓨터가 자동으로 켜지지 않게 하려면 아래와 같이 바이오스 설정에서 Flip to Boot을 Disabled로 한다. (바이오스 진입은 컴퓨터가 켜질때 F2 또는 F1를 누른다) 2023. 3. 4.
원도우 비밀번호 없이 로그인 원도우에서 기존 설정된 비밀번호을 없애고 비밀번호 없이 로그인하기 위한 방법은 다음과 같다. 윈도우+i 를 누르고 계정을 선택하면 다음과 같은 창이 뜬다. 로그인 옵션에서 비밀번호를 클릭한 후 변경을 클릭한다. 기존 비밀번호를 입력하고 새 비밀번호는 아무것도 입력하지 않는다. 2023. 3. 1.
엑셀 행렬 곱셈 엑셀에서 행렬 곱셈을 할 수 있다. 출력할 범위를 선택한다. 다음과 같이 MMULT 함수를 입력한다. 입력하고 Ctrl + Shift + Enter를 누르면 역행렬이 표시된다. 2023. 2. 24.
삼성 노트북 구매 CPU i5-1135G7 RAM 16GB SSD 256GB 1.55kg 2021년 12월 2023. 2. 24.
레노버 노트북 구매 CPU i5-1235U RAM 16GB SSD 256GB~1TB 3.5인치 HDD 슬롯 1.63kg 2023년 3월 2023. 2. 22.
ASUS 노트북 구매 CPU i7-1065G7 RAM 8GB SSD 256GB 3.5인치 HDD 슬롯 1.8kg 2022년 11월 2023. 2. 22.
파워포인트 정확한 사인 파형 그리기 파워포인트에서 정확한 사인 함수 파형을 그리기 위해서는 먼저 엑셀에서 사인 파형을 그린다. 그림영역서식에서 채우기 없음을 선택한다. 그림을 paint.net에 복사한다. 필요 영역만 선택하여 복사한다. 그림파일을 저장할 때는 bmp 형식으로 한다. 위 그림을 복사하고 파워포인트에 붙여넣어 사용한다. 파일 다운로드 2023. 2. 18.
파워포인트 곱셈 기호 곱셈기호는 "수학 연자가"가 아니라 "라틴어-1 추가"에 있다. 문자코드는 00D7이다. 2023. 2. 17.
파일 삭제 포맷 복구 방지 프로그램 BCWipe는 군대에서 많이 사용하는 프로그램으로 삭제한 파일을 다시 복구하지 못하도록 한다. 프로그램에서 Wipe free space를 클릭하면 삭제한 파일들을 복구 못하도록 한다. ☞ BCWipe 다운로드 홈페이지 2023. 2. 16.
컴퓨터와 인공지능의 차이 컴퓨터는 인간두뇌와 다른 원리로 동작한다. 하지만, 인공지능은 인간두뇌를 모사하여 동일한 원리로 동작한다. 컴퓨터는 인간두뇌와 원리가 다르기 때문에 특성도 다르다. 숫자 계산과 같이 인간이 하기 어려운 일도 컴퓨터는 쉽게 할 수 있다. 하지만, 이미지 인식 등과 같은 인간에게 쉬운 일을 컴퓨터는 어렵게 수행한다. 인공지능은 인간두뇌를 모사했기 때문에 인간두뇌와 비슷한 특성을 가진다. 인간에게 어려운 일은 인공지능에게도 어렵다. ChatGPT와 같이 질문에 대해 대답하는 일은 인간에게 어려운 일이 아니고 인공지능에게도 마찬가지로 어려운 일이 아니다. 인간이 몇 년동안 공부해야 하는 복잡하고 어려운 과학이론은 인간과 마찬가지로 인공지능에게도 어려운 일이다. 2023. 2. 11.
딥러닝 추천 서적 딥러닝에 관한 가장 유명한 책은 사이토 고키의 "밑바닥부터 시작하는 딥러닝"이다. 총 3권으로 되어 있다. 1권: 밑바닥부터 시작하는 딥러닝 : 파이썬으로 익히는 딥러닝 이론과 구현 2권: 밑바닥부터 시작하는 딥러닝 2 : 파이썬으로 직접 구현하며 배우는 순환 신경망과 자연어 처리 3권: 밑바닥부터 시작하는 딥러닝 3 : 파이썬으로 직접 구현하며 배우는 딥러닝 프레임워크 2023. 2. 9.
검색엔진과 ChatGPT 차이 검색엔진과 ChatGPT 차이는 다음과 같다. 검색엔진 ChatGPT 정보가 있는 사이트를 알려줌 정보를 바로 알려줌 사용자가 정보를 분석하고 종합 ChatGPT가 정보를 분석하고 종합 검색 기능 검색 기능 + 분석 기능 2023. 2. 9.
색상 팔레트 뜻 색상 팔레트(Palette)는 이미지에 사용할 수 있는 색을 의미한다. 팔레트를 Color Lookup Table(CLT)이라고도 한다. 기본적인 RGB 표현에 3바이트가 필요하지만 이미지에 사용되는 256개 컬러를 테이블로 만들어 사용하면 이미지 저장 용량을 1/3로 줄일 수 있다. GIF 파일은 256 컬러 팔레트를 사용한다. PNG 파일은 팔레트를 사용할 수도 있고 사용하지 않을 수도 있다. 아래 사진은 24비트 컬러의 원본 사진과 팔레트를 사용한 사진이다. 256색 팔레트를 사용한 사진은 원본과 차이가 크게 없다. 2023. 2. 3.
C# ref 키워드 C#은 포인터가 없기 때문에 Call by reference를 위해 함수 인자로 포인터를 사용할 수 없다. Call by reference를 위해서는 포인터대신 다음과 같이 ref 키워드를 사용해야 한다. void Method(ref int A) { A++; } int i=1; Method(ref i); Console.WriteLine(i); 이와 같이 실행하면 i에 2가 저장된다. ☞ Call by value와 Call by reference 차이 2023. 1. 29.
C# 자동 중괄호 해제 도구 메뉴에서 옵션을 선택하고 아래와 같이 '자동 중괄호 완성'을 체크해제한다. 2023. 1. 27.
C# 자동 서식 해제 C#에서 붙여넣기를 하면 자동 서식이 적용된다. 붙여넣기 자동서식을 해제하려면 도구 메뉴의 옵션에서 아래와 같이 체크해제한다. 그외 다른 자동서식을 해제하려면 아래와 같이 체크 해제한다. 2023. 1. 27.
'빌드 오류가 발생했습니다' 창 다시 띄우기 아래 창이 뜰때 '이 대화 상자를 다시 표시 안함'을 체크하면 다시 이 창이 뜨지 않는다. 이 창을 다시 띄우기 위해서는 도구 메뉴에서 옵션을 선택하고 아래와 같이 '시작 여부 묻기'를 선택한다. 2023. 1. 27.
C# 버턴 배경색 기본값으로 변경 버턴 배경색을 기본값으로 돌리는 방법은 다음과 같다. button1.UseVisualStyleBackColor = true; 버턴 배경색을 변경하면 UseVisualStyleBackColor값이 자동으로 false로 변경된다. 버턴의 FlatStyle이 Popup이나 Sytem 스타일이면 이것이 적용되지 않는다. 2023. 1. 26.
반응형