함수

Jeon곰탱·2022년 11월 16일
0

c-lang

목록 보기
8/13

📌 개요

여러 가지 함수를 만들거나 사용해 큰 흐름의 프로그램 만듦

  • scanf(), printf(), main() 함수

  • 코드 재사용 및 효율성

  • 함수는 정의부와 호출부로 구성됨

📌 함수 정의

내가 함수를 만든다 (feat. 함수이름, 함수 인자, 반환형, 함수 몸체)

반환형 함수이름 (인자1,인자2){
	함수몸체
    함수몸체
    함수몸체
}

int add (int x,int y){
	return x+y;
}
  • 함수 이름: 이름 잘짓는 것이 중요(변수랑 같음)

  • 함수 인자: 함수 수행에 필요한 데이터들
    - 데이터 타입 가짜이름

    • 없으면 그냥 ()
  • 반환형: 함수 이름 앞에 돌려주는 데이터 타입을 넣어줌, return으로 돌려준다.
    - 없으면 void

    • 있으면 int,double,float,...
  • 함수 몸체: 알고리즘 짜는곳, return문을 만나면 함수종료!


max함수, addThree함수, atoA함수 만들기!


📌 함수 호출과 반환

실제로 어떻게 쓰는지 코드로 확인

int add(int x,int y){ return x+y;}
int main(){
	int c;
    c = add(1,5);
    printf("%d",c);
    return 0;
}
  • 함수 원형을 미리 위에 선언을 해야한다.
    - int add(int x,int y);

📌 지역 변수와 전역 변수

지역(local): 함수 범위 내에서만 변수가 살아있음, 전역(global): 함수 범위 외에도 살아 있음

int c;

int add(int x,int y){
	int z=1;
    return x+y;
}

int main(){
    z = 10; //오류 z는 add 함수 내에서만 살아 있음    
    c = 100; // c는 살아있음
    c = add(100,100); // c는 200
}

📌 함수와 라이브러리

stdio.h에 printf(),scanf_s()가 있음 저거 안쓰면 printf(),scanf_s() 못씀

헤더파일기능함수들
stdio.h입력,출력printf,scanf,get
stdlib.h숫자변환, 동적할당srand,malloc
ctype.h문자검사 및 변화isalnum,isalpha,islower,toupper
math.h수학 함수sin,exp,pow,abs
time.h시간 처리clock,time
string.h문자열strcpy, strcat, strcmp, strlen, memcpy
profile
Atomic habits make me

0개의 댓글