본문 바로가기

C 언어/임베디드 C

구조체를 함수의 인수로 전달하는 방법 구조체는 함수의 인수나 함수의 반환값으로 사용될 수 있다. 구조체를 함수의 인수로 전달할 때는 구조체 자체를 전달하는 방법과 구조체의 주소를 전달하는 방법이 있다. (1)구조체의 멤버를 함수의 인수로 전달하는 경우 //두 점사이의 거리를 구하는 프로그램 #include #include typedef struct { int x, y; }POINTER; //구조체의 정의 double distance (int, int, int, int); //함수의 선언 int main() { POINTER p1, p2; //두 점을 위한 변수의 선언 double dist; //두 점 사이의 거리를 위한 변수의 선언 printf("please enter x & y coordinate : "); scanf("%d %d", &p.. 더보기
구조체를 가리키는 포인트변수 //데이터 파일에서 몸무게와 키를 읽어 비만을 체크하는 프로그램 #include #include //sin() 함수 사용 #include //exit() 함수 typedef struct { char name[20]; float height; float weight; }STUDENT; int main() { FILE *fp; STUDENT st, *sp; //구조체 변수 int i = 0; if((fp = fopen("d9-5.dat", "r")) == NULL) { printf("File Open Error!\n"); exit(-1); } sp = &st; //sp이 구조체 변수 st의 주소를 갖는다. while(!feof (fp)) //이건 옛날 방식이고 while(feof == 0)으로 표시한다. {.. 더보기
구조체의 배열 // 5명의 학생의 정보를 입력받아 "d9-4.dat" 파일에 기록하는 프로그램 #include #include //exit()함수 typedef struct { char name[15]; char country[20]; int age; }STUDENT; int main() { FILE *fp; STUDENT st[5]; int i; if((fp = fopen("d9-4.dat", "w")) == NULL) { printf("Flie open error...\n"); exit(-1); } for(i=0; i 더보기
구조체의 초기화 //두 점의 위치로부터 거리를 계산하는 프로그램으로 구조체를 초기화하여 사용한다. #include #include //리눅스에서 gcc 컴파일 할 때 -lm을 끝에 입력 typedef struct { int x, y; }POINTER; int main() { POINTER p1 = {0, 0}, p2 = {1, 1}; //구조체 변수의 초기화 double distance, px, py; px = p2.x - p1.x; py = p2.y - p1.y; distance = sqrt(px * px + py *py); printf("distance : %6.3f\n", distance); return 0; } POINTER p1 = {0, 0}, p2 = {1, 1}; 변수 p1과 p2는 구조체 변수이면서 선언.. 더보기
2차원 배열을 초기화하여, 화면에 출력 #include int main() { int i, j; int array[3][4] = {{15, 23, 45, 56}, {34, 52, 76, 23}, {43, 62, 91, 84}}; for(i=0; i 더보기