2012-09-14 2 views
0

저는 Java와 C#을 사용하여 최근 몇 가지 물건을 만들고 있습니다. C의 헤더 파일에 함수 void update(struct process* foo, float measurements)이 있고 헤더 파일 (.c 파일)의 구현에 함수가 있습니다.헤더 파일 구현에 존재하지 않는 방식으로 구조체를 사용할 수 있습니까?

void update(struct process* p,float measurements) 
{ 
    *p.speed = *p.speed + measurements; 
    *p.time = *p.time + 1; 
    *p.noise = *p.noise + ((measurements)/100); 
} 

이제 Java에서 클래스 프로세스를 가져와야합니다. 모두 좋을 것입니다. 그러나 .c 구현에서 .c 파일의 구조체를 선언하지 않고 어떻게 할 것인가? (이 모듈을 사용하는 다른 모듈에서 매개 변수를 전달하고 싶기 때문에 무의미한)?

나는 C가 매우 새롭고 아주 기본적인 질문 일지 모르지만 인터넷에서 1 시간 동안 검색하면 내가 찾는 것을 찾지 못했습니다. 어쩌면 내 키워드가 제대로 선택되지 않았을 수도 있습니다.

+0

어쩌면 뭔가 분명하지 않다에 대한 문법 설탕 인,하지만 당신은 일반적으로 헤더에 모든 선언을 놓을 게요 중 파일. – Mysticial

+0

'#include "process.h"'''process'가 거기 있습니까? – nullpotent

+0

당신의 구현 파일 (.c)에서 상단에 다음을 추가하십시오 : #headerfile.h를 포함하십시오. (yourheaderfile을 파일명으로 대체하십시오) – Borgleader

답변

1

구조 정의가 process 인 파일을 포함시킵니다. @AusCBloke 눈치로

, 당신은 역 참조 구조체 포인터에 (*p).을 사용하고 멤버에 액세스하거나 p->(*p).

+0

Java와 마찬가지로 헤더 파일이 될 다른 클래스를 만들어야 할 것입니다. 나는 단지 새로운 구조체를 위해 다른 헤더 파일을 작성하는 것을 피하려고했다. – as3rdaccount

관련 문제