是否有按版本列出 Delphi 的所有编译器内部函数的列表?
Is there a list of all compiler intrinsic function for Delphi by version?
正如在其他 SO 问题中所回答的,现代 Delphi 终于支持编译器内部函数,例如 AtomicIncrement
。
是否有某个列表列出了在哪个版本的 Delphi 中引入了哪个内在函数,这样我就可以使用 {$if CompilerVersion ...}
来保持代码向后兼容(使用内联 asm)并为未来的编译器提供更清晰的代码?
嗯,你可以使用文档,但我不能保证它的准确性。
- XE7: http://docwiki.embarcadero.com/RADStudio/XE7/en/Delphi_Intrinsic_Routines
- XE6: http://docwiki.embarcadero.com/RADStudio/XE6/en/Delphi_Intrinsic_Routines
- XE5: http://docwiki.embarcadero.com/RADStudio/XE5/en/Delphi_Intrinsic_Routines
- XE4: http://docwiki.embarcadero.com/RADStudio/XE4/en/Delphi_Intrinsic_Routines
- XE3: http://docwiki.embarcadero.com/RADStudio/XE3/en/Delphi_Intrinsic_Routines
- XE2:http://docwiki.embarcadero.com/RADStudio/XE2/en/Delphi_Intrinsic_Routines
- XE: http://docwiki.embarcadero.com/RADStudio/XE/en/Delphi_Intrinsic_Routines
- 2010 年:http://docwiki.embarcadero.com/RADStudio/2010/en/Delphi_Intrinsic_Routines
- 以此类推
碰巧,这个内在函数列表是不完整的。它没有您感兴趣的功能。真遗憾。如果您有兴趣知道这些特定功能是在哪个版本中添加的,那么您肯定可以解决这个问题。如果你想要一个涵盖每一个功能的官方列表,那么它似乎不存在。我想您将不得不在没有它的情况下生活,或者创建列表。
回到文档,可以考虑这个列表:
- http://docwiki.embarcadero.com/Libraries/XE7/en/System.AtomicIncrement
- http://docwiki.embarcadero.com/Libraries/XE6/en/System.AtomicIncrement
- http://docwiki.embarcadero.com/Libraries/XE5/en/System.AtomicIncrement
- http://docwiki.embarcadero.com/Libraries/XE4/en/System.AtomicIncrement
- http://docwiki.embarcadero.com/Libraries/XE3/en/System.AtomicIncrement
- http://docwiki.embarcadero.com/Libraries/XE2/en/System.AtomicIncrement
看看最后两个。 XE3 link 有信息,XE2 link 是空的。这表明此功能是在 XE3 中添加的。快速测试证实了这一点。
鉴于官方文档的可靠性不足,您准备好相信它了吗?
所以,我的建议是您自己测试一下。这样做的好处是您可以确定您的代码是正确的。
正如在其他 SO 问题中所回答的,现代 Delphi 终于支持编译器内部函数,例如 AtomicIncrement
。
是否有某个列表列出了在哪个版本的 Delphi 中引入了哪个内在函数,这样我就可以使用 {$if CompilerVersion ...}
来保持代码向后兼容(使用内联 asm)并为未来的编译器提供更清晰的代码?
嗯,你可以使用文档,但我不能保证它的准确性。
- XE7: http://docwiki.embarcadero.com/RADStudio/XE7/en/Delphi_Intrinsic_Routines
- XE6: http://docwiki.embarcadero.com/RADStudio/XE6/en/Delphi_Intrinsic_Routines
- XE5: http://docwiki.embarcadero.com/RADStudio/XE5/en/Delphi_Intrinsic_Routines
- XE4: http://docwiki.embarcadero.com/RADStudio/XE4/en/Delphi_Intrinsic_Routines
- XE3: http://docwiki.embarcadero.com/RADStudio/XE3/en/Delphi_Intrinsic_Routines
- XE2:http://docwiki.embarcadero.com/RADStudio/XE2/en/Delphi_Intrinsic_Routines
- XE: http://docwiki.embarcadero.com/RADStudio/XE/en/Delphi_Intrinsic_Routines
- 2010 年:http://docwiki.embarcadero.com/RADStudio/2010/en/Delphi_Intrinsic_Routines
- 以此类推
碰巧,这个内在函数列表是不完整的。它没有您感兴趣的功能。真遗憾。如果您有兴趣知道这些特定功能是在哪个版本中添加的,那么您肯定可以解决这个问题。如果你想要一个涵盖每一个功能的官方列表,那么它似乎不存在。我想您将不得不在没有它的情况下生活,或者创建列表。
回到文档,可以考虑这个列表:
- http://docwiki.embarcadero.com/Libraries/XE7/en/System.AtomicIncrement
- http://docwiki.embarcadero.com/Libraries/XE6/en/System.AtomicIncrement
- http://docwiki.embarcadero.com/Libraries/XE5/en/System.AtomicIncrement
- http://docwiki.embarcadero.com/Libraries/XE4/en/System.AtomicIncrement
- http://docwiki.embarcadero.com/Libraries/XE3/en/System.AtomicIncrement
- http://docwiki.embarcadero.com/Libraries/XE2/en/System.AtomicIncrement
看看最后两个。 XE3 link 有信息,XE2 link 是空的。这表明此功能是在 XE3 中添加的。快速测试证实了这一点。
鉴于官方文档的可靠性不足,您准备好相信它了吗?
所以,我的建议是您自己测试一下。这样做的好处是您可以确定您的代码是正确的。