【发布时间】:2017-08-28 07:43:42
【问题描述】:
我们需要使用gettime() 来获取 C 中的当前时间。我正在尝试打印当前时间,但错误:
错误:'t' 的存储大小未知
发生。我不知道如何解决这个问题。代码如下:
#include<stdio.h>
#include<dos.h>
int main(){
struct time t;
gettime(&t);
printf("%d:%d:%d", t.ti_hour,t.ti_min,t.ti_sec);
getch();
return 0;
}
【问题讨论】:
-
嗯,
gettime是 Javascript 的东西,而不是 C 的东西。如果有人或某事告诉您在您的特定系统或平台上有一个名为gettime的 C 函数,请询问他们如何使用它。 -
gettime既不是标准 C 也不是 posix,您需要知道要包含的标头以及要链接的库(如果需要)。 -
此外,
struct time t;不是标准 C,因为有 notime结构,而是tmstruct。 -
IMO 的主要问题是要求使用旧 DOS 时代的旧、过时和过时的功能。我希望学校一般停止使用旧的 Turbo C 和 Turbo C++ 和 DOS,而改为教授现代 C 和 C++。甚至可能是这些语言的旧标准版本。
-
@JoseG。 Turbo C 编译器使用它自己的库来支持这些函数。但它不是当前 C 标准的一部分。结果,它的代码块(我假设使用 gcc 作为编译器)不支持这些库函数。如果您的讲师要求您仅使用这些功能,您可以继续使用 Turbo C。但如果您希望使用标准 C,您可以查看time。该链接还包含有关如何使用它的示例。这将适用于代码块。