Mattias Gärtner wrote:
Zitat von Vinzent Höfler <[EMAIL PROTECTED]>:

[...]
  a: record end;
Thanks. I will use that.
What for? The C statement is empty, it's not a variable and not even a
type. So before translating that into an empty Pascal-record, you should
rather look at what the actually used structur in the C-code is.

Actually the C-Code does what C can do really good: obfuscating.

Yeah.

If I understand the code correct, the 'struct a;' itself is never used directly.
It always uses 'struct a* foo'. So foo is a pointer to an empty struct
a, which probably is the C equivalent of a typed pointer. To get strong type
checking, I guess, it is ok to follow Felipe's advice:

type a = record end; pa=^a;

Well, I guess so, but it still doesn't make a lot of sense.

That "struct a" is not empty (storage size = 0), it is even non-existant (storage size = unknown). So the C-code may shuffle around the pointers, but unless this "struct a" (the "a" not even being a type here) is instantiated somewhere (internally in some library code?) such pointers are merely typed "void*".


Vinzent.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to