2013-04-01 2 views
0

C++ 코드를 C#으로 변환하고 C++의 char은 8 비트를 사용하고 C#은 16 비트를 사용합니다. 나는 숯불 * 모르는, 그래서 C#에서 문자 포인터가 동일합니다.

C#에서 char *의 상응하는 무엇입니까

내가 byte[] 또는 [MarshalAs(UnmanagedType.LPStr)] StringBuilder를 사용하고 또한 C#- C++에서 char의 상당 byte 또는 string인지 말해합니까?

+8

* 달성하고자하는 것은 무엇입니까? * 어떤 데이터를 저장 하시겠습니까? –

+1

플랫폼 호출에 대해 이야기하는 경우, 플랫폼에 따라 다릅니다. 그것은'ref sbyte' 또는'string' 일 수 있습니다. –

+0

사실 나는 C++ 코드를 C#으로 변환 중이고 char * 및 char가 발생하지만 C# char은 두 개의 16 비트 중 하나이며 char *에 대해 알지 못합니까? – kamal

답변

0

이 : 그것은 문자열 컨테이너 역할을하는 경우 일반적으로 사용되는 같은

  1. char *ptr이 (string로 대체해야 기음).
  2. 중요한 것이 있다면 그 값은 [-127,128]char[] 또는 byte[]과 같이 사용하십시오.
1

char[] array1 = { 'b', 'c', 'a' };는 입력 매개 변수의 그 파라미터의 의미에 따라 string 또는 byte[] 수 있었다. 문자 시퀀스를 나타내는 경우 string을 사용하십시오. 매개 변수가 임의의 데이터에 대한 버퍼 인 경우 가장 가능성이 높습니다 (byte[]).

그러나 C/C++에서 char *sprintf 함수와 같은 출력 매개 변수가 될 수도 있습니다. 이 경우 StringBuilder 또는 byte[]이 매개 변수의 의미에 따라 동일한 유형이됩니다. 의미는 C/C++에서 C#에서 byte의에 가까운 whereras 안부

의 C#에서 char 데이터 유형, C#에서 char 문자를 의미 것을 명심하시기 바랍니다.

관련 문제