首页 > 技术文章 > Delphi强制类型转化和类型约定

xumenger 2015-04-17 09:15 原文

  强制类型转换时一种技术,通过它能够使编译器把一种类型的变量当做另一种类型。

  由于Pascal有定义新类型的功能,因此编译器在调用一个函数时候对形参和实参类型匹配的检查是非常严格的。因此为了能够通过编译器检查,经常需要把一个变量的类型转换为另一个变量的类型。例如:假定要把一个字符类型的值赋给一个byte类型的变量:

var
    c: char;
    b: byte;
begin
    c:= 'a';
    b:= c;    //编译器要提示错误
end.

  在下面的代码中,强制类型转换把c转换成byte类型,事实上强制类型转换是告诉编译器你知道你正在做什么,并要把一种类型转换为另一种类型

var
    c: char;
    b: byte;
begin
    c:= 's';
    b:= byte(c);    //编译器不会报错
end.

  注意:只有当两个类型的数据长度一样的时候,才能对变量进行强制类型转换。例如,不能把一个Double强制转换为Integer。

  为了能把一个浮点型转换为一个整型,要用Trunc()或者Round()函数。

  为了把整型转换成一个浮点数类型的值,用下面的赋值语句:

FloatVar:= intVar;
//直接将Integer型变量赋值给Double型变量

  

推荐阅读