簡體   English   中英

將C轉換為C#

[英]converting C to C#

我正在嘗試將此C代碼轉換為C#,是否有一個等效於C聯合typedef的C#?

struct sockaddr_in {
    short   sin_family;
    u_short sin_port;
    struct  in_addr sin_addr;
    char    sin_zero[8];
};

typedef struct in_addr {
  union {
    struct {
      u_char s_b1,s_b2,s_b3,s_b4;
    } S_un_b;
    struct {
      u_short s_w1,s_w2;
    } S_un_w;
    u_long S_addr;
  } S_un;
 } IN_ADDR, *PIN_ADDR, FAR *LPIN_ADDR;

謝謝。

您可以查看以下頁面 就是說,在.NET中,您擁有允許直接使用套接字和TCP / IP的類,例如Socket,TcpListener,TcpClient,而無需盲目轉換C代碼。

雖然其他人肯定有他的道理-這很可能是你真的不需要做的事- 一種方法來模擬使用C#工會StructLayoutAttribute (例如模擬工會在這里 )。

但是不要這樣做。 這個C聯合的目的似乎是允許對4字節長的部分進行位旋轉。 以這種方式使用聯合取決於目標體系結構的字節順序知識,這是C#無法保證的。

在C#中-或任何其他語言,其中便攜性是一個問題-如果你想獲取或設置高字節/低字節/等你需要用明確的一點是說明移這里

但是那也不做。 就像別人說的那樣,不要移植此代碼。 有人已經為您完成了此任務,很可能是內置庫中的Microsoft;)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM