error: unterminated #ifdef
// time.h
#ifdef _TIME_H // ← 此處寫成了 #ifdef
#define _TIME_H
class Time { ... };
// #endif // ← 此處被註釋
// time.h
#ifndef _TIME_H // 正確:if not defined
#define _TIME_H
class Time {
private:
int hour, minute, second;
public:
Time();
void set_time(int h, int m, int s);
void show_time();
};
#endif // 必須配對,不能註釋
// time.h
#pragma once // 編譯器自動防止重複包含,支持 MSVC/GCC/Clang
class Time { ... };
優點:無需手寫宏名、避免宏名衝突、編譯速度略快。缺點:極少數舊編譯器不支持(如 GCC 3.4 以前)。