前几天有人发了一个贴子,说到了"易语言".贴主说"易语言"与其他语言最大的不同就是可以支持中文程序设计.
我想对此发表自己的观点.
首先,任意易门语言,都支持任意的字符集,包括中文字符集,只是有很多程序编译器不支持复杂字符集.但毕竟计算机技术是在进步的,现在很多编译起都支持中文字符集的代码,当然,更确切的说是unicode字符集的代码.
下面我向各位展示,vc2005是如何支持中文的.
首先建立一个头文件,把你常用的关键字define成中文,也可以定义点别的.如下:
//中文关键字定义.h unicode 请在使用vs2005(vc8)或以上版本使用.注意:将输入法设置为半角符号输入方式
#ifndef __中文关键字定义_H__
#define __中文关键字定义_H__
#include "windows.h"
#include "stdio.h"
typedef void* POINTER_TO_VOID;
//数据类型
#define 整数 int
#define 整数64 __int64
#define 实数 float
#define 双精度 double
#define 字节 char
#define 长类型 long
#define 短类型 short
#define 有符号 signed
#define 无符号 unsigned
#define 空类型 void
#define 空类型指针 POINTER_TO_VOID
#define 逻辑类型 bool
#define 逻辑真 true
#define 逻辑假 false
//功能关键字
#define 类型尺寸 sizeof
#define 类型定义 typedef;
//控制转移
#define 如果 if
#define 其他 else
#define 转向 goto
#define 多路开关 switch
#define 缺省处理 default
#define 情况分支 case
#define 强制跳出 break
#define 可续转移 continue
#define 标准循环 for
#define 条件循环 while
#define 运行 do
#define 返回 return
//存储方式
#define 静态的 static
#define 外部的 extern
#define 自动的 auto
#define 寄存器的 register
#define 可变的 volatile
#define 只读的 const
//结构定义
#define 结构体 struct
#define 共用体 union
#define 枚举类 enum
//面向对象关键字
#define 类定义 class
#define 公有成员 public
#define 私有成员 private
#define 保护成员 protected
#define 友成员 friend
#define 操作符 operator
//模板
#define 模板类型 template
//其他
#define 动态导出 __declspec(dllexport)
#define 动态导入 __declspec(dllimport)
#define 字符 TCHAR
#define 字符串 L
#define 主函数 main
//函数
#define 控制台_格式输出 printf
#define 控制台_格式输入 scanf
#define 控制台_字符输入 getchar
#define 控制台_等待返回(A) { getchar(); return (A);}
#endif
然后你就可以用这个头文件设计中文程序了,注意函数名字也可以中文.我给个例子:
#include "中文关键字定义.h"
整数 阶乘(整数 参数)
{
整数 计数器;
整数 返回值;
如果(参数 <= 0)
{
返回 1;
}
返回值 = 1;
标准循环(计数器 = 2; 计数器 <= 参数; ++计数器)
{
返回值 *= 计数器;
}
返回 返回值;
}
整数 主函数()
{
整数 输入的参数;
控制台_格式输出("请输入一个数字:");
控制台_格式输入("%d", &输入的参数);
控制台_字符输入();
控制台_格式输出("阶乘:%d", 阶乘(输入的参数));
控制台_等待返回(0);
}
是个计算阶乘的例子,我没有优化算法,因为敲中文已经够慢的了.注意,要把头文件和源文件保存为unicode编码的,另外将输入法设置为半角符号输入方式。还有上面的代码只有在vs2005或者以上版本才可以编译的,VC6不行的啊。
我用的开发环境是vs2005,实际版本是8.0.50727.42。这个不是免费版本的,我手中有一个免费版本的,是的MS的官网可以下到免费版本的vs2005,只是不集成MFC的,他会向你要注册号码,但注册号码可以从MS的官网免费获得,我现在不记得地址了,晚上找一下,明天发。
我将上面的程序编译了,成功,并正常运行。
是不是说我用30分钟设计了一个支持中文代码程序设计的东西呢?而且还可以免费获得。
我不想评价"易语言",但我要告诉各位,所谓的中文代码程序设计,或者说是UNICODE代码程序设计是很多年前就实现的。
------解决方案--------------------------------------------------------
不错,有些人激愤的过头了,在使用易语言时整天喊着纯中文,过分追求自尊。估计能写编译器的人看这些都是雕虫小技中的小技了。
------解决方案--------------------------------------------------------
LZ这个工作之前也有人做过。