2013-03-13 3 views
0

여러분 중 일부는 천재가 자신과 같이 코딩이 손상된 개인을 도울 수 있기를 기대했습니다. 이전에 만든 다른 프로그램에 타임 스탬프를 넣는 프로그램을 만들어야합니다. 지금은 C++에서 gettimeofday 함수를 사용하여 시간을 얻으려고하는 과정에 있습니다 (Unix에서이 작업을하고 있습니다).구조, 참조 및 gettimeofday 함수 사용에 대한 도움

어쨌든 2 개의 특정 오류가 계속 발생하는 경우를 제외하고 컴파일 할 준비가 된 코드 섹션이 있습니다. 아마도 누군가가

#include <curses.h> 
#include <sys/time.h> 
#include <time.h> 

ExpandedTime* localTime(struct timeval* tv, ExpandedTime* etime); 

struct ExpandedTime 
{ 
    double et_usec; 
    double et_sec; 
    double et_min; 
    double et_hour; 

}; 

int main() 
{ 
    struct timeval tv; 
    struct ExpandedTime etime; 
    gettimeofday(&tv, NULL); 
    localTime(tv, ExpandedTime); 

} 

ExpandedTime* localTime(struct timeval* tv, ExpandedTime* etime) 
{ 

} 

는 기본적으로 지금 메신저 그냥 제대로 gettimeofday를 사용할뿐만 아니라려고 ... 그런 측면에서 좀 도와도 나에게 코드는 지금까지 그 큰 것 같습니다 방법에 대한 몇 가지 조언을 줄 수 있다면 tv로 정의 된 timeval 구조체와 확장 된 시간 구조체를 실제 localtime 함수로 전달합니다. 그러나 33 번째 줄에서는 localtime 함수를 호출하여 2 개의 특정 오류를 표시합니다.

  1. 의 현지은이 범위에서 선언되지 않은
  2. 예상되는 주요 표현 ')'전에 토큰

어떤 도움이 많이 주시면 감사하겠습니다 ...... expandedtime 기능은 수신을 생각한다 내가 믿는 포함 된 헤더 파일 중 하나의 구조에 저장된 gettimeofday의 값.

답변

2
ExpandedTime* localTime(struct timeval* tv, ExpandedTime* etime); 

이 시점에서 컴파일러는 ExpandedTime이 무엇인지 알지 못합니다. 선언 후에 이것을 옮겨야합니다.

또한, 당신은 :
localTime(tv, ExpandedTime); 

가되어야한다 :

localTime(tv, &etime); 
+0

오 고마워요. 내가 묻는다면, ExpandedTime은 내가 처음에 선언 한 함수이다 ... iirc 이것은 프로그램에서 함수를 설정하는 표준 방법이다 ... 그래서 컴파일러는 그것이 무엇인지를 인식 할 수 없다. – PresidentRFresh

+0

@ user2163350 * * "** localTime **은 단지 기능입니다 ..."* (+1, David. nice answer.) – WhozCraig

+0

예. 사과드립니다. localTime – PresidentRFresh

0

내가 그들을 호출 단순화하기 위해 구조체와 형식 정의 사용하는 것이 좋습니다 것입니다. (나는 솔직히 컴파일 할 수 없습니다.)

일반적으로 "strut ExpandedTime"을 사방에 사용해야합니다.

나는 구조체가 같이 그것을 형식 정의를하는 것입니다으로 혼자 "ExpandedType"를 사용하는 방법을 알고있는 유일한 방법 : 귀하의 경우 그래서

typedef struct expanded_time_struct { 
// your struct's data 
} ExpandedTime; 

, 뭔가 같은 :

typedef struct ExpandedTime_struct 
{ 
    double et_usec; 
    double et_sec; 
    double et_min; 
    double et_hour; 

} ExpandedTime; 

ExpandedTime* localTime(struct timeval* tv, ExpandedTime* etime); 
int main() 
{ 
    struct timeval tv; 
    ExpandedTime etime; 
    gettimeofday(&tv, NULL); 
    localTime(&tv, &etime); 

} 

ExpandedTime* localTime(struct timeval* tv, ExpandedTime* etime) 
{ 

}