将 c/c++ 宏转换为 c# 中的等效代码 [关闭]

Posted

技术标签:

【中文标题】将 c/c++ 宏转换为 c# 中的等效代码 [关闭]【英文标题】:convert c/c++ macro into equivalent code in c# [closed] 【发布时间】:2013-10-17 18:25:09 【问题描述】:

plz,我需要有关如何将 c# 中的等效代码与 c/c++ 中的任何宏代码作为此宏的帮助。

#define BYTESWAP16(x)                   \
    ((((x) >> 8) & 0x00FF) | (((x) << 8) & 0xFF00))
#define BYTESWAP32(x)                   \
    ((((x) >> 24) & 0x000000FF) | (((x) >> 8) & 0x0000FF00) | \
     (((x) << 8) & 0x00FF0000) | (((x) << 24) & 0xFF000000))
#define ntohs(x)                        BYTESWAP16(x)
#define htons(x)                        BYTESWAP16(x)
#define ntohl(x)                        BYTESWAP32(x)
#define htonl(x)                        BYTESWAP32(x)

【问题讨论】:

如果 C# 不支持宏,则使用传递引用。 C# 不支持宏。 一:为什么要用宏?有功能。二、这是重复的:ntohs() and ntohl() equivalent? 静态 uint BYTESWAP16(uint x) return ((x >> 8) & 0x00FF) | ((x 【参考方案1】:

您可以使用IPAddress.HostToNetworkOrderIPAddress.NetworkToHostOrder 来执行这些操作。这些都内置在框架中。

【讨论】:

【参考方案2】:

您可以使用静态方法定义一个密封的抽象类,这些方法的作用与您的宏相同。

【讨论】:

为什么不只是一个静态类? Reed Copsey,可能是他不打算继承某些接口。

以上是关于将 c/c++ 宏转换为 c# 中的等效代码 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 WCF 将 VB 代码转换为 C#

JavaScript 中的 C# 字典等效项

如何将c代码转换为布尔表达式?

如何将我的 VBA 宏转换为 C# 以在 Windows 窗体应用程序中使用?

将科学计数法中的数字转换为十进制[关闭]

如何将 C++ 转换为 C# 代码而 statmernt 代码递减