목차 return 함수의 결과값은 return문을 통하여 호출자에게 반환된다. 예) 양의 정수를 입력받아 그 숫자만큼 별표를 출력한다. 입력값이 50이상이면 50개의 별표만 출력한다. 입력값이 0이면 프로그램은 종료된다. 입력값이 음수일 경우 다시 입력할 수 있게 작성되었다. int getnum() 음수 값을 입력할 경우, 다시 입력할 수 있게 작성되었다. int cheknum(int n) 숫자를 50까지 제한하고 있다. void printstsr(int n) n이 n-- 가 되어 0이될때까지 *을 찍는다. 결과 return 사용 예 return; // 반환값없이 함수실행을 종료하는 경우 return (21); return (x + 4); return x++; 함수의 인수전달 기법 인수의 전달방법(par..
C언어 Chapter 15. 함수의 호출과 실행 함수의 구성 함수의 정의 함수의 호출 함수의 원형 Ex) 두 정수를 입력 받아 평균값을 출력하는 프로그램으로 평균값은average()함수가 산출한다. 프로그램의 설명 함수의 정의 float average(int n1, int n2 ); 반환자료형 함수이름 (인자); { 명령문 } avrg = average (num1, num2); 함수이름 (인수 리스트); TIP : 인수의 개수는 ( , ) 로 구분한다. 함수 호출의 실행 과정 average()함수의 호출 호출된 average()함수를 피호출자, 호출한 main()함수를 호출자라고 부른다. 함수의 호출과정에서 호출자는 피호출자에게 인수를 전달한다. 호출자의 변수 num1과 num2의 값은 average()..
STM32F407VET6 LED ON & OFF 제어 테스트 📌 SMT32F407VET6 칩내장 보드의 GPIO를 사용하여 LED를 켜보기로하겠다. LED가 SMT32F407VET6칩의 어떤 PIN에 연결되어 있는지 도면을 확인한다. SMT32F407VET6칩의 PE7~PE11 에 RGB or RG LED 2개가 연결되어 있다. GPIO를 사용하기 위하여 Keil uVision5 의 Software Component 추가가 필요하다. STM32Cube Framework(API) 에서 Classic 선택한다. STM32Cube HAL 에서 Common, Cortex, GPIO, PWR, RCC 를 선택한다. for 를 사용하여 딜레이를 구현하기 위해 실시간성을 제공하는 Software Component를 ..
C언어 Chapter 14. C언어 연습문제 📌 세변수를 아래와 같이 설정하여, 변수의 값과 주소를 출력하는 프로그램을 작성하라. int inumber = 25 float fnumber = 34.5 char ch = 'g' 소스코드 결과 📌 위의 세 변수를 가리키는 포인터 변수를 각각 설정하여, 포인터 변수를 이용해서 세 값을 출력하는 프로그램을 작성하라. 소스코드 결과 📌 float형 변수 fnumber를 38.9로 설정한 다음, fnumber의 각 바이트의 내용을 아스키 코드로 출력 하라. 소스코드 결과 📌 int 형의 변수 inumber의 값을 키보드로부터 읽어서 설정한 다음, 포인터 변수를 이용해서 inumber의 값을 두 배로 만들어서 출력하는 프로그램을 작성하라. 소스코드 결과 📌 포인터 변수..
C언어 Chapter 13. 텍스트 파일 🔔 예) 텍스트파일의 내용을 화면과 파일로 출력하는 프로그램 d0327.in 으로 텍스트 파일 생성 같은 폴더 내에 C소스코딩 결과 fpin = fopen("d0327.in", "r"); fopen() 은 외부파일과 프로그램을 연결시키는 라이브러리 함수이다. d0327.in 은 파일명 이다. fpout = fopen("d0327.out", "w"); "w" = 쓰기 "r" = 읽기 (!feof(fpin)) 현재위치가 fpin 파일의 끝인지 아닌지의 여부를 알려주는 함수 파일의 끝 eof(end-of-file)이 아니면 0을 반환한다. 💡 Tip : (!feof(fpin) 보다 while문에서 ((0 == feof(fpin))이 알아보기 쉽다. fscanf(fpin..
C언어 Chapter 12. ✨ 메모리 뷰어를 컴파일 디버그로 보기 복습 🎯 비트 논리 연산자 & : 비트로 세분화(2진수) 하여 한자리씩 and논리 연산. ^ : 비트로 세분화(2진수) 하여 한자리씩 xor 논리연산. 두개의 값이 서로 다를 때 참이다. | : 비트로 세분화(2진수) 하여 한자리씩 or 논리연산. Ex) 24 | 32 11000 100000 111000 포인터 함수 구성 &(ampersand) 는 주소연산자이다. &x는 변수가 할당받은 메모리의 주소를 말한다. 형식지정자 %p는 주소를 출력할 때 사용. printf("the address of x: %p\n", &x); 출력문으로 x가 할당받은 메모리의 주소는 0012FF7C 라는 것을 알 수 있다. 주소 연산은 덧셈( + )과 뺄셈( ..
C언어 Chapter 11. IEE 754 표준방식 컴파일 실행 과정의 에러 Type iNum = 3; 3의 type : int 형 대입연산자 (좌측) : int형 1. 2. 과정을 비교 : 형동등성 (1. 2. 3에서 발생 에러 type : Compile time error) 심볼 테이블 Type Name Address int iNum 2000 대입 : iNum의 메모리 위치 : 2000번지 (발생 에러 type : Run time error ) Compile time error 종류 전처리 과정 에러 C문법 에러 링크 에러 🔔 예) 전처리 과정 에러 #include 에서 i를 빼먹었을 때 결과 : directive(지시자) error 🔔 예) C문법 에러 return 0의 세미클론(;)을 빼먹었을 때..
C언어 Chapter 10. 포인터 💡 컴파일은 Visual C++ 6.0 버전을 사용하였다. 변수의 값과 주소 심볼 테이블과 변수 x의 메모리 할당. 심볼테이블에는 변수의 이름과 자료형, 그리고 이 변수가 할당받은 메모리의 주소가 기록된다. 변수가 할당받은 메모리 공간에는 변수의 값이 들어간다. 선언된 직후에는 변수가 무슨 값을 가지고 있는지 알 수 없기 때문에 미정값을(undefined valued)으로 부른다. x = 25; 변수 x를 초기화 시킴으로 변수의 메모리주소 값은 아래와같다. 변수 초기화 후의 메모리 Visual C++ Debug 모드에서 메모리 주소값 알아보는 법 💡 Debug 모드는 원하는 지점에 F9키로 break 포이트를 찍고 F5키로 진입한다. Watch 에 엔퍼센트(&)를 붙여..