Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- server
- udemy
- C
- Math
- JavaScript
- greedy
- programmers
- dfs
- graph
- Cleancode
- 백준
- web
- php
- Python
- Algospot
- 정수론
- BFS
- 인프런
- C언어
- 따배씨
- 따라하며 배우는 C언어
- 따라하면서 배우는 C언어
- BASIC
- BOJ
- Algorithm
- DP
- sorting
- String
- 생활코딩
- 종만북
Archives
- Today
- Total
몽상실현개발주의
[따배씨] 9.1 함수가 필요할 때 ~ 9.2 함수의 프로토 타입 본문
따배씨 - 따라하며 배우는 C언어
9강 함수
9.1 함수가 필요할 때
#include <stdio.h>
int main(){
printf("********************\n");
printf(" LEE\n");
printf(" Seoul, Korea\n");
printf("********************\n");
return 0;
}
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#define WIDTH 20
#define NAME "LEE"
#define ADDRESS "Seoul, Korea"
void print_multiple_chars(char c, int n_stars, bool print_newline);
void print_centered_string(char str[]);
int main(){
print_multiple_chars('*', WIDTH, true);
print_centered_string(NAME);
print_centered_string(ADDRESS);
print_multiple_chars('*', WIDTH, true);
return 0;
}
void print_multiple_chars(char c, int n, bool print_newline){
for (int i = 0; i < n; ++i){
printf("%c", c);
}
if (endl)
printf("\n");
}
void print_centered_string(char str[])
{
int n_blanks = 0;
n_blanks = (int)(WIDTH - strlen(str)) / 2;
print_multiple_chars(' ', n_blanks, false);
printf("%s\n", str);
}
- 하드타이핑 출력을 함수를 활용하여 출력
9.2 함수의 프로토 타입
- 모든 함수의 내부동작을 외울수 없음
- 블랙박스로서의 함수, 입력과 출력만 생각하고 전체 구조를 작성
- 컴퓨터가 Compile 을 할 때, 블랙박스로서 동작만 알면 됨
- prototype 형태만 있으면 Compile이 진행 됨
- Compile 만 진행되고, 실행파일을 만드는 Linking은 진행되지 않음
- Linking 단계에서 함수의 실행 내용이 없기 때문
void print_multiple_chars(char c, int n_stars, bool print_newline);
- 함수의 prototype 선언
- void: 함수의 실행 결과 값의 자료형
- print_multiple_chars: 함수 명
- (char c, int n_stars, bool print_newline) : 매개변수, Parameter
print_multiple_chars('*', WIDTH, true);
- 함수 호출
- ('*', WIDTH, true): argument, 함수의 입력값
void print_multiple_chars(char c, int n, bool print_newline){
for (int i = 0; i < n; ++i)
printf("%c", c);
if (endl)
printf("\n");
}
- 함수의 선언문
- 함수의 형이 void 이기 때문에, return 이 생략
void print_multiple_chars(char, int, bool);
...
int main(){
...
}
void print_multiple_chars(char c, int n, bool print_newline){
for (int i = 0; i < n; ++i)
printf("%c", c);
if (endl)
printf("\n");
}
- prototype 선언에서는 매개변수 형 까지만 입력하고 함수 선언부에서 매개변수 명까지 입력해도 complie이 된다
- 블랙박스 모델에서 프로토타입 선언은 데이터 타입의 입력/출력만 중요하기 때문
- 그래도 작성하는것이 좋다
이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.
http://blog.naver.com/atelierjpro
http://www.inflearn.com/course/following-c
'Language > C' 카테고리의 다른 글
[따배씨] 9.4 변수의 영역과 지역 변수 (0) | 2021.05.27 |
---|---|
[따배씨] 9.3 함수의 자료형과 반환값 (0) | 2021.05.27 |
[따배씨] 8.9 텍스트 파일 읽기 (0) | 2021.05.27 |
[따배씨] 8.8 메뉴 만들기 예제 (0) | 2021.05.27 |
[따배씨] 8.7 입력 스트림과 숫자 (0) | 2021.05.26 |
Comments