상세 컨텐츠

본문 제목

C언어 함수 와 기억클래스

Tips/대학

by 한국인맛집 2019. 4. 1. 21:31

본문

반응형

 

함수의 기본적인 설명은 아래 글에 적혀있다.

2019/03/22 - [고등교육/1_ C 언어] - C언어 입출력함수과 연산자

 

 

C언어 입출력함수과 연산자

표준입출력함수 - 표준입출력함수 C언어에서 입력, 출력을 제공하는 함수가있다. 표준입출력함수는 파일에 정의되어있어 헤더파일을 추가하면 사용할수있다. *파라미터 (Parameters) : 함수에 들어오는..

wantbe.tistory.com

 

함수는 크게 표준함수와 사용자정의 함수로 나누어진다.

 

표준함수는 C언어 자체적으로 제공하는 함수를 뜻한다.

 

C언어 함수는 정말로 많다.

 

아래 레퍼런스 사이트에서 검색할수있다.

 

https://en.cppreference.com/w/c/language

 

 

C language - cppreference.com

 

en.cppreference.com

 

C언어에서 자주 사용되는 함수리스트이다. 

 

헤더파일 함수원형 사용목적
stdio.h

int printf(const char* format , ...) 콘솔창에 포멧에 맞게 출력해준다.
int scanf(const char* format, ...) 키보드 입력을 받아 포멧형태로 입력받는다.
FILE * fopen(const char* format, const char* mode)

파일을 열어 파일 모드에 따라 쓰거나 읽을수 있다.

"w" : 쓰기모드 (Write)

      파일이 없으면 생성

"r" : 읽기모드 (Read)  

      파일이 없으면 읽기실패.

"a" : 파일 끝에 이어 쓴다. (Append) 

       파일이 없을경우 생성한다.

"w+" : 새로 새생성하고 쓴다.

"r+ " : 파일이없을경우 에러발생

     파일을 읽거나 쓰기모드로 한다.

"a+" :  파일의 끝에 이어서 쓴다.

      파일을 읽어서 끝에 이어서 쓴다.

int flcose(FILE* stream)

파일스트림을 닫는 역할을한다. 성공하면 0을 리턴 그렇지않으면 EOF 리턴

EOF : End of file (파일의 끝을 나타냄)

math.h

double sin(double args) ,

double cos(double args) ,

double tan(double args)

삼각 함수를 사용할수있다.
string.h

int strcmp( const char *lhs, const char *rhs )

char *strcpy( char *dest, const char *src ),

size_t strlen(const char* str),

char *strcat( char *dest, const char *src )

문자열 비교, 문자열의 길이를 알수있는 함수이다.
stdlib.h

int rand();

void srand( unsigned seed );

난수관련 함수를 사용할수있다.

<참조 : cppreference.com>

 

 

함수의 구성.

 

 

 

함수의 원형선언

 

#include<stdio.h>


void foo();   // 함수의 머리를 선언해주어야한다.

void main(){
 foo();
}

void foo(){ // foo 함수의 정의부분.

	printf("foo Called");
}

 

 

 

하지만 메인함수 보다 위에 정의하면 선언할필요는 없다.

 

#include<stdio.h>

void foo(){
	printf("foo Called");
}

void doo(){
	printf("doo called");
}

void main(){
 	foo();
    doo();
}

 

함수에 매개변수를 전달하는방법. ( 값전달)

 

#include<stdio.h>


void foo(int number , int number1){

	printf("Number= %d  + number1 =%d \n",number, number1);
    
    printf("a + b = %d",number + number1);
}


void main(){
  int a = 10, b = 20 ;
  
  foo(a,b);
 
}

 

 

함수에 참조로 값을전달(주소값으로 전달)

 

#include<stdio.h>


void swap(int* x, int* y);

void main(){

	int x= 10, y = 20;
    
    printf("before :  x = %d, y = %d\n",x,y);
    swap(&x,&y);
	printf("after : x = %d , y = %d",x,y);
}

void swap(int* x, int* y){

  int temp = *x;
  *x = *y;
  *y = temp;
 }



 

 

swap 함수는 매개변수로 변수의 주소값을 받아 주소값의 실제값을  바꾸어주는 역할을한다.

 

기억클래스

 

 

- auto : 함수 실행시 만들어지고 실행이 끝나면 기억공간(stack 영역에서 ) 사라진다. 모든변수는 auto 가 생략되어있다.

 

- static : 프로그램이 끝날때 계속 유지되는 변수는 static 선언해주면 된다. C언어에서 static 은 전역변수로 사용할수 있게 해주는 키워드다.

 

- extern : 외부변수는 다른 프로젝트, 다른 언어와 혼용하여 프로그래밍 할때 사용된다. 일반적으로 잘 사용되지않는다.

register : 레지스터변수는 CPU 레지스터에 자료를 저장할수있다. 사용되는 이유는 프로그램의 실행속도를 조금이나마 빠르게 해주기 위해 사용된다.

 

반응형

관련글 더보기