C语言中定义:
struct TVarData
{
union
{
smallint VSmallint;
char Vstring;
...
};
};
在C语言中可以直接这样使用:
TVarData.VSmallint
TVarData.VString;
但如果在delphi中定义:
type
TVarData=pack record
case Integer of
varSmallint: (VSmallint:Smallint);
varString: (VString:PWideString);
...
end;
也可以直接使用
TVarData.vstring;
TVarData.vsmallint;
吗?另外,什么时候是使用TVardata.vstring,什么时候是使用TVarData.vsmallint?是根据integer的值吗?integer值是怎么得来的呢?有时integer也为byte或其他的类型,这里integer是一个常量吗?但它的值是怎么来的呢?
struct TVarData
{
union
{
smallint VSmallint;
char Vstring;
...
};
};
在C语言中可以直接这样使用:
TVarData.VSmallint
TVarData.VString;
但如果在delphi中定义:
type
TVarData=pack record
case Integer of
varSmallint: (VSmallint:Smallint);
varString: (VString:PWideString);
...
end;
也可以直接使用
TVarData.vstring;
TVarData.vsmallint;
吗?另外,什么时候是使用TVardata.vstring,什么时候是使用TVarData.vsmallint?是根据integer的值吗?integer值是怎么得来的呢?有时integer也为byte或其他的类型,这里integer是一个常量吗?但它的值是怎么来的呢?
如Case boolean of
那最多有2项,如果是Integer则有2^32个变体项,
不要去在意这个啦,尽管用case integer of,里面的项可以直接用的
具体什么时候用这个还是那个,就要看具体的代码了;
看一下TMessage这个类,你会知道怎么用的