| 
 
| 
先吐槽一下,易语言的文本型数据结构也是够了,居然不记录文本的长度信息标准库的取本文长度,相当于每次调用strlen... o(n)的复杂度。。卧槽。。这也太。。。
x
马上注册,结交更多易友,享用更多功能,让你轻松玩转觅风论坛。您需要 登录 才可以下载或查看,没有账号?立即注册 
  
 
 这里的思路很简单,首先易语言的文本型是一个4位的栈空间,内部指向一个char* 或 const char* 的结构
 然后 xxx = "xxx" 类似C/C++ const char* 在全局区
 xxx = 到文本/取空白文本... 这样的应该是LocalAlloc分配的动态内存
 
 
 如果是第一种情况,不像C/C++ 没有sizeof的计算不出静态区大小 (或许有办法。。反正我没找到 。。。)
 第二种情况 直接调LocalSize就行了
 
 
 
 
 代码如下:
 
 
 .版本 2
 
 
 .子程序 string_spaceLength, 整数型, 公开
 .参数 szText, 文本型
 .局部变量 pszText, 整数型
 .局部变量 nLength, 整数型
 
 
 pszText = ptr_get_inner (szText) '可以用取变量数据地址代替。。
 nLength = LocalSize (pszText)
 .如果真 (nLength ≤ 0)
 nLength = 取文本长度 (szText) + 1  '目前没找到更好的部分。。。。可能是static const char*的结构???,反汇编的情况是直接MOV 到一个寄存器里面,就酱吧
 .如果真结束
 
 
 返回 (nLength)
 
 
 
 | 
 |