본문 바로가기

목록

(199)
C언어 연습문제28 [문제] 길이가 4x4인 int형 2차원 배열을 선언하고, 모든 요소를 아래 그림의 왼쪽에 있는 형태와 동일하게 초기화하자. 그리고 배열의 요소들을 오른쪽 방향으로 90º씩 이동시켜서 그 결과를 출력하는 프로그램을 작성해보자. 참고로 배열이 변경되는 형태는 아래와 같다. 출력을 하는 함수와 90º회전하는 함수 두 개를 만들 것 [실행결과] [코드] #include void ShowArr(int(*arr)[4]); void RotateArr(int(*arr)[4]); int main(void) { int i; int arr[4][4] = { { 1, 2, 3, 4}, { 5, 6, 7, 8}, { 9, 10, 11, 12}, {13, 14, 15, 16} }; for (i = 0; i < 3; i++) {..
WinMerge 목차 1. WinMerge란 2. WinMerge 설치 방법 3. WinMerge 사용방법 1. WinMerge란 WinMerge는 윈도우용 무료 소프트웨어 프로그램입니다. WinMerge는 두 개의 파일 또는 폴더 전체를 비교할 수 있으며, 버전 간에 변경된 사항을 확인한 다음 버전간에 변경 사항을 병합할 수도 있습니다. 2. WinMerge 설치 방법 1) 아래 링크를 통해 WinMerge 홈페이지로 이동한다. https://winmerge.org/downloads/?lang=en Download WinMerge - WinMerge Download WinMerge The easiest way to install WinMerge is to download and run the Installer. Rea..
C언어 연습문제27 [문제] 아래의 코드에서 WhoIsFirst 함수를 완성하시오. #include int OlderFirst(int age1, int age2) { if (age1 > age2) return age1; else return age2; } int YoungerFirst(int age1, int age2) { if (age1 < age2) return age1; else return age2; } int WhoIsFirst() { } int main() { int age1 = 20; int age2 = 30; int first; printf("입장순서 1 \n"); first = WhoIsFirst(age1, age2, OlderFirst); printf("%d세와 %d세 중 %d세가 먼저 입장! \n\n",..
C언어 연습문제26 [문제] 먼저 아래와 같이 2차원 배열 arr1, arr2를 선언한다. arr1 1 2 3 4 5 6 7 8 arr2 1 1 1 1 3 3 3 3 5 5 5 5 그리고 배열요소를 출력하는 함수 ShowArr2Dstyle()와 배열요소의 합을 반환하는 함수 Sum2DArr()을 사용하여 arr1, arr2의 배열 요소와 배열 요소의 합을 출력하라. [실행결과] 1 2 3 4 5 6 7 8 1 1 1 1 3 3 3 3 5 5 5 5 arr1의 합: 36 arr2의 합: 36 [코드] #include void ShowArr2Dstyle(int(*arr)[4], int column) // 2차원 배열 전체 요소 출력 { int i, j; for (i = 0; i < column; i++) { for (j = 0..
Doxygen 목차 1. Doxygen이란 2. Doxygen 사용방법 - Doxygen 다운로드 - 프로젝트 폴더 생성 1) HTML 파일 만들기 2) CHM 파일 만들기 1. Doxygen이란 Doxygen은 소프트웨어 레퍼런스 문서 생성기 입니다. 즉, 프로젝트 문서화를 쉽게 할 수 있도록 도와주는 도구입니다. 프로그램을 작성할 때 Doxygen 주석 문법을 사용하여 주석을 달아주면, 그 주석과 프로그램 구조를 토대로 전체 프로그램의 문서를 만들어줍니다. C, C++, C#, Java, PHP 등의 소스코드들로부터 HTML, CHM, PDF, XML 형식의 문서를 생성할 수 있습니다. /** *기본 주석 형태 */ 기본적인 Doxygen 주석 형태 /** @file AppMain.c @date 2022/03 @a..
[C언어] static 변수 전역변수와 지역변수 모두에 static 선언을 추가할 수 있다. 그러나 여기서는 지역변수의 static 선언에 대하여 설명하고자 한다. 1. 지역변수와 지역변수에 static 선언이 붙는 경우 차이점 지역변수 특성 1) 선언된 함수 내에서만 접근이 가능하다. 2) 함수 내에 선언된 지역변수는 해당 함수가 반환하면 소멸된다. 지역변수에 static 선언이 붙는 경우 특성 1) 선언된 함수 내에서만 접근이 가능하다. 2) 프로그램 시작과 동시에 할당 및 초기화 된다. 3) 딱 1회 초기화되고 별도의 초기화 조건이 없으면 0으로 초기화된다. 4) 프로그램 종료 시까지 메모리 공간에 존재한다. 2. 예제 코드 및 분석 그림1의 실행결과를 보면 static변수(num1)는 계속해서 메모리에 존재하기 때문에 값이 ..
[C언어] 지역변수와 전역변수 지역변수 1. 지역변수의 특징 1) 선언된 지역 내에서만 유효하다. 2) 중괄호 내에 선언되는 변수이다. 3) 선언된 지역을 벗어나면 소멸된다. 2. 예제 코드와 실행 흐름 #include int SimpleFuncOne(void) { int num = 10; // 이후부터 SimpleFuncOne의 num 유효 num++; printf("SimpleFuncOne num: %d \n", num); return 0; // SimpleFuncOne의 num이 유효한 마지막 문장 } int SimpleFuncTwo(void) { int num1 = 20; // 이후부터 num1 유효 int num2 = 30; // 이후부터 num2 유효 num1++, num2--; printf("num1 & num2: %d ..
RS-232 송수신 LED 추가 회로 설계 전 확인할 내용 1. 기존 회로도 확인 2. RS-232 전압출력 방식에 대한 이해 RS-232는 데이터를 전송할 때 신호선과 접지간의 전압을 사용한다. 출력 전압 사양은 +5V에서 +25V(논리적으로 0)과 -5V에서 -25V(논리적으로 1)이다. 그러나 최대 전압인 ±25V는 일반적으로 사용되지 않으며 보통 ±12V가 사용된다(참고로 리시버는 최소 ±3V만 되면 시그널을 처리할 수 있다) 아래 그림은 실제 데이터가 RS-232를 통해 전송되는 모습을 보여준 것이다. 대부분의 마이크로 컨트롤러 내부에는 UART를 포함하고 있다. 그런데 UART의 출력은 +5V Logic이므로 RS-232 통신을 위해서는 +5V Logic의 데이터를 RS-232의 전압 Level로 변환해주는 소자(Device..