함수의 기본적인 설명은 아래 글에 적혀있다.
2019/03/22 - [고등교육/1_ C 언어] - C언어 입출력함수과 연산자
함수는 크게 표준함수와 사용자정의 함수로 나누어진다.
표준함수는 C언어 자체적으로 제공하는 함수를 뜻한다.
C언어 함수는 정말로 많다.
아래 레퍼런스 사이트에서 검색할수있다.
https://en.cppreference.com/w/c/language
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 레지스터에 자료를 저장할수있다. 사용되는 이유는 프로그램의 실행속도를 조금이나마 빠르게 해주기 위해 사용된다.
노출의 이해 (31) | 2019.04.10 |
---|---|
렌즈의 종류와 이해 (31) | 2019.04.10 |
C언어 연습문제 (초보개발, 프로그래밍초심자에게 도움이되는 문제 ) (0) | 2019.04.08 |
방송통신대학교 과제물 제출방법 (오프라인 과제물제출 , 중간과제물) (31) | 2019.04.01 |
C언어 반복문 (31) | 2019.03.31 |
C언어 선택제어문. (31) | 2019.03.31 |