typedef 예제를 풀어보자
#include <stdio.h>
typedef unsigned short int UK;
int main()
{
unsigned short int data = 5;
UK arr;
arr = data;
printf("temp = %d\n", arr);
}
#include <stdio.h>
typedef struct People
{
char name[10];
unsigned short int age;
float height;
float weight;
} Person_p;
int main()
{
Person_p data;
printf("상대방의 정보를 입력하시오. > \n");
printf(" 이름 : ");
scanf_s("%s", data.name, 10);
printf(" 나이 : ");
scanf_s("%hu", &data.age);
printf(" 키 : ");
scanf_s("%f", &data.height);
printf(" 몸무게 : ");
scanf_s("%f", &data.weight);
printf(" \n 정보는 이와 같다. \n");
printf("%s : %d세, %.1fcm\n, %.1fkg\n", data.name, data.age, data.height, data.weight);
}
#include <stdio.h>
#define MAX_ARR 5
typedef char NAME_TYPE[15];
int AddF(NAME_TYPE* p_name, unsigned short int* p_age, float* p_height, float* p_weight, int count)
{
if (count < MAX_ARR)
{
printf("\n 새로운 친구 정보를 입력하세요 \n");
printf("1. 이름 :");
scanf_s("%s", *(p_name + count), 15); // &로 받지 않기 때문에.
printf("2. 나이 : ");
scanf_s("%hu", p_age + count);
printf("3. 키 :");
scanf_s("%f", p_height + count);
printf("4. 몸무게 : ");
scanf_s("%f", p_weight + count);
printf(" 입력을 완료했다. \n\n");
return 1;
}
else {
printf("최대 인원을 초과하여 입력 할 수 없다. \n");
printf(" 최대 %d명까지만 관리 가능하다.\n\n", MAX_ARR);
}
return 0;
}
void showF(NAME_TYPE* p_name, unsigned short int* p_age, float* p_height, float* p_weight, int count)
{
int i;
if (count > 0)
{
printf("\n 등록된 친구 목록 \n");
printf("==========================\n");
for (int i = 0; i < count; i++)
{
printf("%-14s, %3d, %6.2f, %6.2f\n", *(p_name + i), *(p_age + i), *(p_height + i), *(p_weight + i));
}
printf(" ==========================\n\n");
}else {
printf(" \n 등록된 친구가 없습니다. \n\n");
}
}
int main()
{
NAME_TYPE name[MAX_ARR];
unsigned short int age[MAX_ARR];
float height[MAX_ARR];
float weight[MAX_ARR];
int count = 0, num;
while (1) {
printf(" [메뉴] \n");
printf("==============================\n");
printf("1. 친구 추가 \n");
printf("2. 친구 목록 보기\n");
printf("3. 종료 \n");
printf("=============================\n");
printf(" 번호 선택 : ");
scanf_s("%d", &num);
if (num == 1) {
if (1 == AddF(name, age, height, weight, count)) count++;}
else if (num == 2) {
showF(name, age, height, weight, count);
}
else if (num == 3) {
break;
}
else {
printf("1~3번만 선택가능하다.\n\n");
}
}
}
<결과>
#include <stdio.h>
#define MAX_ARR 5
typedef struct People
{
char name[14];
unsigned short int age;
float height;
float weight;
}Person;
int AddF(Person *p_friend, int count)
{
if (count < MAX_ARR)
{
p_friend = p_friend + count;
printf("\n 새로운 친구 정보를 입력하세요 \n");
printf("1. 이름 :");
scanf_s("%s", p_friend->name, 14); // &로 받지 않기 때문에.
printf("2. 나이 : ");
scanf_s("%hu", &p_friend->age);
printf("3. 키 :");
scanf_s("%f", &p_friend->height);
printf("4. 몸무게 : ");
scanf_s("%f", &p_friend->weight);
printf(" 입력을 완료했다. \n\n");
return 1;
}
else {
printf("최대 인원을 초과하여 입력 할 수 없다. \n");
printf(" 최대 %d명까지만 관리 가능하다.\n\n", MAX_ARR);
}
return 0;
}
void showF(Person *p_friend, int count)
{
int i;
if (count > 0)
{
printf("\n 등록된 친구 목록 \n");
printf("==========================\n");
for (int i = 0; i < count; i++)
{
printf("%-14s, %3d, %6.2f, %6.2f\n", p_friend->name, p_friend->age, p_friend->height, p_friend->weight);
p_friend++;
}
printf(" ==========================\n\n");
}else {
printf(" \n 등록된 친구가 없습니다. \n\n");
}
}
int main()
{
Person friends[MAX_ARR];
int count = 0, num;
while (1) {
printf(" [메뉴] \n");
printf("==============================\n");
printf("1. 친구 추가 \n");
printf("2. 친구 목록 보기\n");
printf("3. 종료 \n");
printf("=============================\n");
printf(" 번호 선택 : ");
scanf_s("%d", &num);
if (num == 1) {
if (1 == AddF(friends, count)) count++;
}else if (num == 2) {
showF(friends, count);
}
else if (num == 3) {
break;
}
else {
printf("1~3번만 선택가능하다.\n\n");
}
}
}
<결과>