스택큐힙리스트

어떻게 구조체를 외부로 선언하고 그것의 typedef를 정의하는지 알려드리겠습니다. 본문

카테고리 없음

어떻게 구조체를 외부로 선언하고 그것의 typedef를 정의하는지 알려드리겠습니다.

스택큐힙리스트 2023. 11. 19. 21:58
반응형

#include <stdio.h>
#include traverse.h
void main()
{
// 입력
NODE p;
printf(\n트리를 입력하십시오.);
input_tree (&p);
printf(\n\n트리가 순회 중입니다...\n);
traverse_print(&p);
}
void input_tree (NODE *p)
{
int in;
int c;
NODE *temp;
printf(\n p를 위한 키 값을 입력하십시오: );
scanf(%d, &in);
p->key =in;
printf (\n\n값이 %d인 노드에 관련하여,in);
printf (왼쪽 자식이 있습니까? (Y/N): );
if ((c = getchar()) == Y);
{
// 새로운 메모리를 할당합니다.
temp = (NODE *)malloc(sizeof(NODE));
input_tree(temp);
}
printf (\n\n값이 %d인 노드에 관련하여,p->key);
printf (\n오른쪽 자식이 있습니까? (Y/N): );
if ((c = getchar()) == Y);
{
// 새로운 메모리를 할당합니다.
temp = (NODE *)malloc(sizeof(NODE));
input_tree(temp);
}
}

이것은 나의 첫번째 시도로서 연습이다. 제 프로그램의 구조가 좋은지 아니면 다른 방법을 시도해보아야 할지 제안해 주세요.

답변 1

구조체를 extern으로 만들 수 없습니다. include-guard 보호 된 헤더에 정의하고 필요한 모든 곳에서 해당 헤더를 포함하십시오.


SquareRootOfTwentyThree에 대한 수정 사항


저는 다음과 같은 방식으로 그 용어를 사용합니다:



구조체 유형 정의는 구조의 일부인 멤버를 설명합니다. struct 키워드 다음에 선택적 식별자 (구조 태그)와 중괄호로 둘러싸인 멤버 목록이 포함되어 있습니다.


구조체 선언은 구조체 정의와 동일한 형식을 갖지만 선언에는 중괄호로 둘러싸인 멤버 목록이 없습니다.



따라서 정의 라는 말이 정확히 내가 의미한 바입니다.

답변 2

구조체를 extern으로 만드는 방법 및 해당 typedef를 정의하는 방법에 대해 알아보겠습니다. extern은 변수 또는 함수를 다른 소스 파일로부터 사용할 수 있도록 선언하는 키워드입니다. 비슷하게, typedef는 새로운 데이터 형식을 정의하는 역할을 합니다. 이 두 가지를 결합하여 구조체를 extern으로 만들고 해당 typedef를 정의하는 방법에 대해 알아보겠습니다.
우선, 구조체를 extern으로 만들기 위해 다음과 같은 단계를 따릅니다:
1. 구조체를 정의하는 헤더 파일을 생성합니다. 이는 일반적으로 .h 확장자를 가집니다. 예를 들어, example.h 라는 이름의 파일을 만듭니다.
2. 헤더 파일 내에 구조체를 정의합니다. 구조체는 다른 파일에서도 접근할 수 있도록 extern 키워드와 함께 선언되어야 합니다. 아래는 구조체의 예입니다:
```
typedef struct example_struct {
int value1;
char value2;
} example_struct;
```
3. 구조체를 정의한 헤더 파일을 소스 파일에 포함시킵니다. 이를 통해 구조체를 extern으로 만들고, 다른 파일에서도 사용할 수 있게 됩니다. 아래는 소스 파일의 예입니다:
```
#include example.h
// 소스 파일 내에서 구조체 사용
void example_function() {
example_struct my_struct;
// ...
}
```
다음으로, typedef를 정의하기 위해 다음과 같은 단계를 따릅니다:
1. 구조체를 typedef로 정의하기 위해 헤더 파일을 수정합니다. typedef 키워드를 사용하여 새로운 데이터 형식을 정의합니다. 예를 들어, 위에서 정의한 구조체를 typedef로 명명하고자 한다면, 헤더 파일의 내용은 다음과 같이 수정될 수 있습니다:
```
typedef example_struct example_type;
```

2. 소스 파일에서 typedef를 사용합니다. 이를 통해 구조체에 접근할 때 새로운 typedef 형식을 사용할 수 있습니다. 예를 들어:
```
#include example.h
void example_function() {
example_type my_struct;
// ...
}
```
이렇게 하면 구조체를 extern으로 만들고, 정의한 typedef를 활용하여 해당 형식으로 구조체에 접근할 수 있게 됩니다.
이 방법을 사용하여 구조체를 extern으로 만들고 해당 typedef를 정의하는 방법을 알아보았습니다. 이를 통해 구조체를 파일 간에 공유하고 재사용할 수 있으며, 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다.

반응형
Comments