C++ でのファイルのリンクに関して特定の質問がありました。fmttime.h という名前のヘッダー ファイルがあり、それを fmttime.cc (実装ファイル) にリンクしたいとします。
ExpandedTime* localTime(struct timeval* tv, ExpandedTime* etime);
int main()
{
struct timeval tv;
struct ExpandedTime etime;
gettimeofday(&tv, NULL);
localTime(&tv,&etime);
}
ExpandedTime* localTime(struct timeval* tv, ExpandedTime* etime)
{
tzset(); // Corrects timezone
int epochT = (tv->tv_sec) - timezone; // Epoch seconds with
int epochUT = tv->tv_usec; // Timezone correction
int seconds = epochT % 60;
epochT /= 60;
etime->et_sec = seconds;
etime->et_usec = epochUT;
int minutes = epochT % 60;
epochT /= 60;
etime->et_min = minutes;
int hours = (epochT % 24) + daylight; // Hours with DST correction
epochT /= 24;
etime->et_hour = hours;
printf("%d,%d,%d\n", seconds, minutes, hours);
printf("%d\n", epochUT);
printf("%d\n", timezone);
printf("%d\n", daylight);
return etime;
}
したがって、基本的にはヘッダーに fmttime.h を含めました。このプロセス全体についていくつか質問があります。fmttime.h には、この関数プロトタイプしかありません (私の目的に実際に必要なものはこれだけです)。
// Interface file for fmttime.h which is including the fmttime.c
// Contains function prototype
char* formatTime(struct timeval* tv, char* buf, size_t len);
fmttime.cc 実装ファイルでこの関数を使用したい場合、関数プロトタイプを再宣言する必要がありますか? または、#include を介してリンクされているため、ヘッダー ファイルに既に含まれているため、fmttime.cc に含まれているためにスキップできます。
したがって、基本的に .CC ファイルに char* formatTime (struct timeval*.....) を追加したいのですが、プロトタイプを .CC で宣言する必要があるのか、fmttime.h で処理する必要があるのか わかりませんファイル。