Time Ada中时间跨度和时间的数据类型
Ada语言中时间和时间跨度的数据类型是什么。这种类型的变量是如何存储在内存中的?在内存中定义了一种名为Time Ada中时间跨度和时间的数据类型,time,ada,Time,Ada,Ada语言中时间和时间跨度的数据类型是什么。这种类型的变量是如何存储在内存中的?在内存中定义了一种名为Time的类型。此类型的内存布局由实现定义。中定义了一个名为时间的类型。此类型的内存布局由实现定义。来自 package Calendar中Time类型的值或其他某种时间类型的值表示由相应时钟报告的时间 Time_Span类型的值表示实时持续时间的长度 简而言之,时间类型表示时间戳,时间跨度类型表示时间段的持续时间。From package Calendar中Time类型的值或其他某种时间
Time
的类型。此类型的内存布局由实现定义。中定义了一个名为时间的类型。此类型的内存布局由实现定义。来自
- package Calendar中Time类型的值或其他某种时间类型的值表示由相应时钟报告的时间李>
- Time_Span类型的值表示实时持续时间的长度
简而言之,时间类型表示时间戳,时间跨度类型表示时间段的持续时间。From
- package Calendar中Time类型的值或其他某种时间类型的值表示由相应时钟报告的时间李>
- Time_Span类型的值表示实时持续时间的长度
简而言之,时间类型代表时间戳,时间跨度类型代表时间段的持续时间。只要看一下Ada.Real\u Time.Time\u Span
,就会说类型时间跨度是私有的然后说完整声明不是由语言定义的
此外,他说
Time_Span类型的值表示实时持续时间的长度
说
第一次的时间不得大于–3600秒,最后一次的时间不得小于3600秒
这些语句是可移植Ada程序可以依赖的全部
现在,专门针对GNAT,我们可以查看上的实际实现,其中
(注意,这是针对桌面系统的:对于嵌入式系统,类型和值可能不同)
因此答案是,在桌面GNAT上,Time
和Time\u Span
都存储为64位值,最低有效位为1纳秒。只要看一下Ada.Real\u Time.Time\u Span
,就知道type Time\u Span是私有的然后说完整声明不是由语言定义的
此外,他说
Time_Span类型的值表示实时持续时间的长度
说
第一次的时间不得大于–3600秒,最后一次的时间不得小于3600秒
这些语句是可移植Ada程序可以依赖的全部
现在,专门针对GNAT,我们可以查看上的实际实现,其中
(注意,这适用于桌面系统:对于嵌入式系统,类型和值可能不同)
因此答案是,在桌面GNAT上,Time
和Time\u Span
都存储为64位值,最低有效位为1纳秒。您为什么想知道?(这将对答案产生影响)我想知道它们是如何存储在内存中的?例如:Ada.Real_Time.Time_Span:=Ada.Real_Time.millizes(3)是如何存储在内存中的?我的意思是,为什么需要知道它们是如何存储在内存中的?如果只是好奇,好吧,但是如果你需要在一台机器上将它们传递到另一种语言,或者通过网络传递到另一个系统,事情会变得更复杂。我正在调试一个问题,我正在检查CAN消息的周期,这进一步用于确定CAN速率是否正确?你为什么想知道?(这将对答案产生影响)我想知道它们是如何存储在内存中的?例如:Ada.Real_Time.Time_Span:=Ada.Real_Time.millizes(3)是如何存储在内存中的?我的意思是,为什么需要知道它们是如何存储在内存中的?如果只是好奇,好吧,但是如果你需要在一台机器上将它们传递到另一种语言,或者通过网络传递到另一个系统,事情会变得更复杂。我正在调试一个问题,我正在检查CAN消息的周期,这进一步被用来确定CAN速率是否正确?
-- Time and Time_Span are represented in 64-bit Duration value in
-- nanoseconds. For example, 1 second and 1 nanosecond is represented
-- as the stored integer 1_000_000_001. This is for the 64-bit Duration
-- case, not clear if this also is used for 32-bit Duration values.
type Time is new Duration;
Time_First : constant Time := Time'First;
Time_Last : constant Time := Time'Last;
type Time_Span is new Duration;