(ps: 其实能生成最小代码(真编译)的高级语言编译器是turbo pascal,不信你写
程序比较一下:
program test;
begin
writeln('hello, world.');
end.
生成的exe不到1.5k。而同样的c程序:
#include
main()
{
printf("hello, world.\n");
}
最精悍的c/c++编译器生成的代码也有6k。
)
那么几个编译器生成的代码质量又如何呢?
举一个例子,比如我们在编程时经常用到的for循环语句:
(1) object pascal:
procedure foo;
var
i, j: integer;
begin
for i := 0 to 15 do j := j + i;
end;
(2) c++
void foo(void)
{
int i, j;
for (i = 0; i < 16; i++) j = j + i;
}
(10) 位及逻辑操作
object pascal和c/c++在这方面没什么差别。c/c++的&,|,~,^,>>,<<,&&,
||,!等效于object pascal的and,or,not,xor,shr,shl(and,or,not,xor
既用于位操作也用于逻辑操作)。不过c/c++不支持逻辑xor(a xor b = a and not
b or not a and b,还是可以实现的)。