홈>
이 예에서
Book
의 전체 정의
main()
에서 사용하기 전에
.
Book
를 선언하는 방법이 있습니까
세부 사항을 지정하지 않고 유형으로,
main()
이후 세부 사항을 정의하십시오.
. 감사합니다.
https://www.tutorialspoint.com/cprogramming/c_typedef.htm 을
#include <stdio.h>
#include <string.h>
typedef struct Books {
char title[50];
char author[50];
char subject[100];
int book_id;
} Book;
int main( ) {
Book book;
strcpy( book.title, "C Programming");
strcpy( book.author, "Nuha Ali");
strcpy( book.subject, "C Programming Tutorial");
book.book_id = 6495407;
printf( "Book title : %s\n", book.title);
printf( "Book author : %s\n", book.author);
printf( "Book subject : %s\n", book.subject);
printf( "Book book_id : %d\n", book.book_id);
return 0;
}
- 답변 # 1
- 답변 # 2
이것이 가능하다는 의견이 있지만, 나는 그것을 보지 못하므로 대답은 아니요입니다. Book 유형이 이미 main ()에서 사용 되었기 때문에 간단합니다. 어떻게
strcpy( book.author, "Nuha Ali");
도서 구조에 대해 모르는 경우 실제로 컴파일러에 의해 처리됩니까?
다음과 같이 함수 선언에서 가능합니다 :typedef struct Books Book; void foo(struct Books *aBookPtr);
이것은 컴파일러가 포인터에 대한 지식으로 행복하게 살 수 있기 때문에 구현시 세부 정보 만 필요합니다. 이것이 도움이 되길 바랍니다.
관련 자료
- c# - 파생 된 형식 참조에서 제네릭 형식을 정의 할 수 있습니까?
- reactjs - 스타일 jsx - 클래스 이름없이 css 규칙을 정의 할 수 있으며 동적으로 해석되는 스타일이 작동하지 않는 이유는 무엇입니까?
- metaprogramming - ZSH에서 동적으로 함수를 정의 할 수 있습니까?
- codeblocks - mainc는 h 파일에서 선언하고 다른 c 파일에서 정의하는 함수를 읽을 수 없습니다 (C)
- kuzzle - 다른 플러그인의 API 작업에 파이프를 선언 할 수 있습니까?
- excel - VBA가 셀 시작시 '문자를 얻을 수 있습니까?
- php - 지정된 네임 스페이스에서 프로그래밍 방식으로 새 함수를 정의 할 수 있습니까?
- python - 마시맬로에서 상호 배타적 인 필드로 중첩 스키마를 정의 할 수 있습니까?
- xsd validation - xsd - 요소에 대해 가능한 두 가지 속성 구문을 정의 하시겠습니까?
- linear programming - GLPK에서 멀티 바운드 최적화 문제를 정의 할 수 있습니까?
- Typescript에서 비어 있지 않은 배열 유형을 정의 할 수 있습니까?
- 헤더 파일에서 구조체를 선언하고 c 파일에서 정의하는 방법
- c++ - constexpr에 대한 포인터 대신 constexpr 포인터를 선언 할 수 있습니까?
- java - API 범위에 대한 특정 차원을 정의 할 수 있습니까?
- java - for 또는 while 루프에서 참조 변수를 선언 할 수 있습니까?
- flutter에서 키 값으로 열거 형을 정의 할 수 있습니까?
- 구조체 배열을 선언하고 나중에 초기화하는 방법은 무엇입니까?
- rust - 트레이 트 안에 타입 별칭을 선언 할 수 있습니까?
- c - 나중에 루프 반복에서 모듈로 연산자를 증가시킬 수 있습니까?
- if statement - Rust에서 if 표현식의 조건부로 변수를 선언 할 수 있습니까?
선언하고 전달할 수 있습니다.
Book*
타입의 포인터를 사용할 수 있습니다. 하지만*
와 상관없이 역 참조를 허용하지 않습니다. 또는->
) 또는이 유형의 객체를 선언합니다 (Book book;
와 동일) ).명시된 목표를 달성하는 데 가장 가까운 것은 아마도 할당 된
Book
에 대한 포인터를 반환하는 함수 그런 다음 접근 자 기능을 사용합니다.이 컴파일 :