2017-12-28 20 views
0

StackOverflow에서 이에 대한 답변을 보았습니다. 내 C 프로젝트에서, 나는 main 함수와 child 함수를 사용하고있다. 자식 함수는 헤더 파일이 주 파일에 포함 된 별도의 .c 파일로 작성됩니다. 파일을 구조체에있는 파일로 전달합니다.

#include<stdio.h> 


struct student 
{ 
    int t1; 
    float e1; 
}; 

typedef struct student stu; 

#include"struct_demo.h" 

void main() 
{ 
    stu s1; 
    stu *r1=&s1; 

    s1.t1=10; 
    s1.e1=172.1; 

    struct_demo(r1); 
} 

그리고 기능 struct_demo.c이 기능 struct_demo에 대한

#include"stdio.h" 

void struct_demo(stu *s1) 
{ 

    s1->e1=9; 
    printf("%d",s1->e1); 

} 

헤더 파일을 다음과 같다은

#ifndef STRUCT_DEMO_H_ 
#define STRUCT_DEMO_H_ 

void struct_demo(stu *s1); 

#endif /* STRUCT_DEMO_H_ */ 

제 컴파일러는 자식 기능의 오류를 보여주는 것입니다

표현식은 반드시 있어야합니다. 개별 기능 하에서 단일 .c 파일에 기록 기능 (분리가 .c 파일을 사용하지 않고 실행될 때, 상호 대 구조체 또는 - 유니온 타입

식별자 스튜

동일한 프로그램 정의되지) 작동합니다. 내가 어디로 잘못 가고 있니? struct_demo.h 이후이 코드 struct_demo.h 모르는

답변

1
struct student 
{ 
    int t1; 
    float e1; 
}; 

typedef struct student stu; 

이동은 당신이 구문 분석하는이 방법

myStructure* myFunction(structure* myStructure) 
{ 
    //some opperation 
    return myStructure; 
} 

을 할 필요가 주소를 구문 분석 스투

0

것입니다 그 구조체의 주소는 초기화 할 때 조심해야한다. 왜냐하면이 시점에서 포인터가 어디든지 갈 수 있기 때문에 calloc을 사용하여 메모리 공간을 확보해야 할 것이다.