답변
D2009 이상 : 있음. PChar
은 유니 코드 문자 인 Char
(WideChar
)에 대한 포인터입니다. PAnsiChar
은 AnsiChar
에 대한 포인터이며 이름에서 알 수 있듯이 ANSI 문자입니다.
편집 : 델파이 PChar
및 PAnsiChar
사전 2009 버전은 정확히 동일합니다. 둘 다 (안시) 문자를 가리 킵니다.
PAnsiChar은 유니 코드가 아닌 char (이전 문자열 유형)에 대한 포인터이며, PChar는 새로운 스타일 인 유니 코드 char을 가리 킵니다.
당신은 44 초 더 빨랐습니다. :) – jpfollenius
하지만 더 공식화 된 대답을했습니다. :) – Mihaela
Delphi 2009 Char 유형은 Char, AnsiChar 및 WideChar이며, Char는 기본값으로 WideChar입니다. 이전 버전의 Delphi에서 Char은 AnsiChar와 같습니다. P는 주어진 타입에 대한 포인터를 나타냅니다.
PChar는 "char"에 대한 포인터입니다. D2009 이상에서 Char은 UnicodeChar를 의미합니다. 그 전에 Char는 AnsiChar였습니다.
차이점은 D2007을 사용하고 이후 버전으로 마이그레이션하면 PAhnSchar의 정의가 변경되지만 PAnsiChar의 정의는 변경되지 않는다는 것입니다.
나는 에서 델파이 2007 이전 를 PChar의 I는 "델파이 2007 및 이전 버전에서는"을 의미하기 위해 취할 귀하의 질문에, 그래서 ....
"델파이 이전 2007 년"의 통지를 받아 및 PANSIChar은 동의어입니다. 그들은 동일한 것을 의미합니다 - ANSIChar 값에 대한 포인터. 문자은 해당 버전에서 ANSIChar과 동의어입니다.
그러나 델파이 2009 이상 숯불 그렇게 를 PChar는 PWideChar로과 동의어가된다, WideChar가과 동의어가된다.
WideChar는 가 아니고 유니 코드 문자입니다. 유니 코드는 그다지 간단하지 않습니다. 어느 누구도 WideChar 값은 BMP (Basic Multilingual Plane)의 코드 포인트이거나 대리 쌍 중 하나 일 수 있습니다. 또한 분음 기호 일 수도 있습니다. 예를 들어 WideString에서 바로 앞의 코드 포인트에 "악센트"를 적용 할 수 있습니다.
유니 코드의 "문자"개념은 모든 유형의 단일 값으로 쉽게 매핑되지 않습니다.
소위 'ANSIChar'는 반드시 앤시 (Ansi) 문자 일 필요는 없으며, MBCS 문자의 앞뒤 바이트 일 수도 있습니다. – mghie
과거의 복잡한 실수는 앞으로 올바른 이해를 보장 할 수있는 방법이 아닙니다. – Deltics
대부분의 사람들이 "캐릭터"라고 생각하는 것은 유니에서 Grapheme이라고 불립니다. 코드 말투. Graphemes은 완전한 기본 문자 + 모든 코드 포인트 + 모든 발음 구별 부호가 첨부됩니다. 불행히도 거의 아무도이 문제가 발생하지 않습니다. 그들은 실패한 16 비트 어레이 모델을 사용합니다. – Skrylar
- 1. 차이점 downcase와 downcase의 차이점! Ruby에서
- 2. IE5와 IE8의 차이점 모드 차이점
- 3. 컴파일러 차이점
- 4. 차이점 포크
- 5. 정렬 차이점
- 6. 파일이없는 차이점
- 7. 네트워크의 차이점
- 8. RegEx의 차이점
- 9. 게으른 로딩 Javascript 파일과 차이점 사이의 차이점</body>
- 10. System.Web.Cache와 HTTPContext.Curent.Cache의 차이점
- 11. 입양과 입양의 차이점
- 12. Object와 NSObject의 차이점
- 13. 코코아에서 연산과 스레드의 차이점
- 14. Cmdlet.EndProcessing과 Cmdlet.StopProcessing의 차이점
- 15. HP LoadRunner와 PerformanceCenter의 차이점
- 16. Silverlight 2.0과 3.0의 차이점
- 17. SSRS 2005와 2008의 차이점
- 18. LINQ의 두 위치 차이점
- 19. DateTime.ToUniversalTime과 TimeZoneInfo.ConvertTimeToUtc의 차이점
- 20. 두 날짜의 차이점
- 21. DocumentFormat.OpenXml.Packaging.WordprocessingDocument에서 Open과 Create의 차이점
- 22. STREAM_CLIENT_CONNECT와 STREAM_CLIENT_ASYNC_CONNECT 사이의 차이점
- 23. Go와 Cython의 차이점
- 24. ArrayList 및 List와의 차이점
- 25. /usr/include와/include의 차이점
- 26. 스레드와 스레드 풀의 차이점
- 27. Zend_Controller_Action_Helper_Abstract와 Zend_View_Helper_Abstract의 차이점
- 28. Perl (Windows와 Linux의 차이점)
- 29. USER_INDEXES와 USER_IND_COLUMNS의 차이점
- 30. 찾기와 필터의 차이점
질문은 구체적으로 "Delphi 2007"을 의미합니다. 이는 "Delphi 2007 and earlier"을 의미합니다. 이 대답은 그 맥락에서 간단하게 잘못된 것입니다. PChar == 델파이 2007 및 이전 버전의 PANSIChar. – Deltics
글쎄, 내가 대답했을 때 그 질문에 언급하지 않았다.당신이 downvoting하기 전에 편집 역사를 보았다면 ( – jpfollenius
글쎄, 지금이 상황에서이 대답을 정정하면이 질문에 오는 다른 누구에게도 도움이 될 것입니다. 편집 이력을 직접 확인하지 않고 머리에 잘못 대답했습니다. – Deltics