본문 바로가기

C 언어/임베디드 C

함수의 정의 함수의 정의는 표제부와 함수몸체로 구성된다. 함수반환자료형 함수이름 (인수리스트) {명령문} //실인수와 형식인수의 자료형이 일치하지 않을 경우 #include float average(short n1, short n2); int main() { int num1, num2; float avrg; printf("Please enter an integer : "); scanf("%d", &num1); printf("Please enter an integer : "); scanf("%d", &num2); avrg = average(num1, num2); printf("The average of %f and %f is %6.3f\n", num1, num2, avrg); return 0; } //두수의 평균 값을.. 더보기
makefile 만들어보기 간단한 컴파일은 실행시켜 준다 make 명령어 추가 CC = gcc all : main.o test.o @echo TEST C MAKE # echo 메시지를 출력한다 @$(CC) -o emb main.o test.o main.o : main.c @echo main.o를 만들었습니다 @$(CC) -c main.c test.o : test.c @$(CC) -c test.c @echo main.o를 만들었습니다 clean : @rm -rf main.o @rm -rf test.o @rm -rf emb run : all @ls -al @./emb 추가된 명령어들을 보면 CC = gcc 변수를 선언한 경우입니다 실제 gcc문구들은 $(CC)로 바꾸어서 사용한다. 다르게 설명하면 CC = -g -c or CC = m.. 더보기
두 함수에 문법적 오류는 없지만 실행 파일이 만들어지지 않는 경우 hello 함수 선언만 되어 있고, 내용은 없는 소스 //파일명 hello.c #include void hello(); int main() { printf("시작\n"); hello(); printf("끝\n"); return 0; } main함수선언이 되어있지 않은경우 //파일명 main.c #include void hello() { printf("a\n"); return; } 위 두 소스를 봤을때 문법적인 오류는 없다. 그래서 컴파일을 실행하면 오브젝트 *.o 파일까지 만들어진다. 하지만 링크에서 걸리므로 실행파일은 생성되지 않는다. 하지만 오브젝트 파일은 생성되었기 때문에 두 오브젝트 파일을 묶어 아래와 같은 명령어로 실행파일을 만들수 있다. gcc -o test(실행파일) hello.o main... 더보기
구구단 출력하기 #include int main() { int a,b,c; printf("숫자를 입력하세요 : "); scanf("%d", &a); b=0; while(b 더보기
함수의 호출과 실행 //두정수를 입력받아 평균값을 출력하는 프로그램으로 평균값은 average()함수가 산출한다. #include float average(int n1, int n2); //함수의 원형(proto type) int main() { int num1, num2; float avrg; printf("Please enter an integer : "); scanf("%d", &num1); printf("Please enter an integer : "); scanf("%d", &num2); avrg = average(num1, num2); //average()함수의 호출 printf("The average of %d and %d is %6.3f\n", num1, num2, avrg); return 0; } //두 .. 더보기