gpt4 book ai didi

c# - 如果 BIGENDIAN 在编译时未解析,为什么它是一个指令?

转载 作者:太空狗 更新时间:2023-10-29 23:30:09 26 4
gpt4 key购买 nike

请原谅我用词不当,但我找不到更好的解释方式。

据我了解,C# 是一种 WORA 语言 - 您可以在一台机器上编写它并在另一台机器上部署它,因为 MSIL 直到应用程序实际运行时才会编译。

那么为什么 BitConverter.IsLittleEndian 被定义为 like so :

#if BIGENDIAN
public static readonly bool IsLittleEndian /* = false*/;
#else
public static readonly bool IsLittleEndian = true;
#endif

BIGENDIAN 这里是一个预处理器指令,这意味着它是在编译时解析的。因此,如果开发人员的机器是小端,而目标使用大端,IsLittleEndian 是否仍会在目标机器上报告 true

最佳答案

不,它会按预期工作。它起作用的原因是因为安装在目标系统上的 .NET 运行时是为该目标系统构建/编译的,所以它的 BitConverter.IsLittleEndian 属性将返回 false。您的代码只是引用该属性,因此直到运行时才确定。

关于c# - 如果 BIGENDIAN 在编译时未解析,为什么它是一个指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32746556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com