"error C2079: '<名前>' が 未定義の class '<クラス名>' で使用しています。" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
error C2079: 'local_time' が 未定義の struct 'main::tm' で使用しています。

ソース(バグ有り):

#include <stdio.h>
#include <stdlib.h>


int main(void) 
{
time_t timer;
struct tm local_time;

timer = time(NULL);
localtime_s(&local_time , &timer);
printf("%4d/", local_time.tm_year + 1900);
printf("%2d/", local_time.tm_mon + 1);
printf("%2d ", local_time.tm_mday);
printf("%2d:", local_time.tm_hour);
printf("%2d:", local_time.tm_min);
printf("%2d", local_time.tm_sec);
printf(" %d\n", local_time.tm_isdst); }


原因:
定義されていない構造体あるいは共用体が使用されています。

あるいは必要な include ファイルが指定されていません。

対処:
クラスあるいは共有体の定義を見直します。

あるいは必要なincludeファイルを指定します。

この例では #include <time.h> が include されていないため、struct 'main::tm' が見つかりませんでした。


ソース(修正済み):

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void) 
{
time_t timer;
struct tm local_time;

timer = time(NULL);
localtime_s(&local_time , &timer);
printf("%4d/", local_time.tm_year + 1900);
printf("%2d/", local_time.tm_mon + 1);
printf("%2d ", local_time.tm_mday);
printf("%2d:", local_time.tm_hour);
printf("%2d:", local_time.tm_min);
printf("%2d", local_time.tm_sec);
printf(" %d\n", local_time.tm_isdst); }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]