나는 K & R 책에서 C의 구조를 공부하고 발생하고이 :구조 선언
struct{
int len;
char *str
} *p;
구조체 변수의 이름이 있어야 할 곳에 있기 때문에 나는이 혼란스러워하고, 그들은 포인터 *p
을주었습니다. 아무도 여기 좀 도와 줄래? 이 선언은 무엇을 의미합니까?
나는 K & R 책에서 C의 구조를 공부하고 발생하고이 :구조 선언
struct{
int len;
char *str
} *p;
구조체 변수의 이름이 있어야 할 곳에 있기 때문에 나는이 혼란스러워하고, 그들은 포인터 *p
을주었습니다. 아무도 여기 좀 도와 줄래? 이 선언은 무엇을 의미합니까?
이 선언은 int
및 char*
의 두 필드로 구성된 구조체에 대한 포인터입니다. 이 구조체에는 이름이 없으며 동일한 구조체의 다른 포인터를 선언하려는 경우 다시 작성해야합니다. 이 같은 것을 쓸 수
주의 사항 :
struct MyStruct {
int data1;
char data2;
};
이것은 당신이 변수 선언과 같이 나중에 사용할 수있는 새로운 구조체 형 정의합니다 : struct MyStruct myVar;
합니다. 당신이 쓴 것과의 차이점은이 구조체는 새로운 변수를 선언하지 않지만 새로운 형을 선언한다는 것입니다. 왜냐하면 내 예제의 구조체는 이름을 가지기 때문에 여러분은 그렇지 않습니다.
또 다른 옵션은 typedef
을 사용하고이 구조체에 이름을 부여한 다음이 유형의 변수를 더 많이 선언하기 위해 지정한 이름을 사용할 수 있습니다.
자세한 내용은 http://en.wikipedia.org/wiki/Typedef에서 "선언 단순화"절을 참조하십시오.
아래 답변이 도움이 될 경우 옆에있는 V를 눌러 수락하십시오. 고맙습니다. –