![]() |
Delphi-Version: 5
Übersetzung unsigned char* rcv / unsigned char *data nach Delphi
Moin moin,
folgende C++ Header habe ich wie folgt übersetzt:
Delphi-Quellcode:
Worin besteht der Unterschied zwischen unsigned char* data und unsigned char *value?
// BYTE __stdcall PiccRead(unsigned char addr,unsigned char* data);
TFNPiccRead = function(addr: UCHAR; data: PAnsiChar): UCHAR; stdcall; // BYTE __stdcall PiccValue(unsigned char dd_mode,unsigned char addr,unsigned char *value,unsigned char trans_addr); TFNPiccValue = function(dd_mode, addr: UCHAR; value: PAnsiChar; trans_addr: UCHAR): UCHAR; stdcall; Viele Grüße Peter |
AW: Übersetzung unsigned char* rcv / unsigned char *data nach Delphi
ich würde es mal so übersetzen (auch wenn ich mich in C nicht so gut auskenn)
unsigned char* | data = Pointer-Typ | Parameter unsigned char | *value = Typ | Parameter als Referenz in Delphi dann wörtlich data: PByte var value: Byte Wobei ich dann vorzugsweise Beides mit Letzerem (var) übersetzen würde, es sei denn der Parameter ist optional (man also auch NIL angeben können möchte). |
AW: Übersetzung unsigned char* rcv / unsigned char *data nach Delphi
Wo der Stern steht ist unerheblich. Ob man den Stern an den Typen anhängt oder vor den Namen stellt, wird vom C-Compiler gleich behandelt. Man kann ihn auch unverbunden einfach dazwischen stellen.
Code:
... und zwar alles Pointer. Referenzparameter gibt es erst ab C++, und sie werden dort mit einem & gekennzeichnet. Die lassen sich dann tatsächlich so behandeln, wie Var/Out in Delphi. In reinem C muss man das ganze eben mit Pointern umgehen, und da unterscheidet der Compiler nicht, wie der Stern steht. Das ist dann reine Sache der Ästhetik, wie der Schreiber es schöner findet.
// Alles das gleiche:
typ* name; typ * name; typ *name; Ich würde es alles einheitlich übersetzen, also entweder überall Pointer oder überall Var. Himi's Vorschlag, nach der Semantik zu gehen, ist aber auch sehr schön! |
AW: Übersetzung unsigned char* rcv / unsigned char *data nach Delphi
Hallo ihr beiden,
danke für eure Antworten. Zitat:
Viele Grüße Peter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz