易码技术论坛

 找回密码
 加入易码
搜索
楼主: yan

[工具] 编译器Y2.26最终版 08/5/10更新

[复制链接]
发表于 2007-8-3 10:12:33 | 显示全部楼层
放假没有学习的环境了,也很少用你的编译器。还是支持你!!
发表于 2007-8-3 20:12:30 | 显示全部楼层
我今日在某程序中使用了Y文件,又被一个问题困扰了一整天.研究了一整天,终于把问题的核心找到了.
我发觉在链接库中使用了全局变量时,一旦它被链接到某个程序中,这个程序中最先声明的一部分变量空间会被链接库中的程序破坏,被破坏变量空间的长度和链接库中的全局变量占用的变量空间长度相等,即,相当于那部分内存被重复声明了,本打算用于不同用途的变量使用同一段内存.
这个问题我总算搞清楚了,但是怎样解决?难道每次链接那些有全局变量的Y文件时都要先计算出会有多少变量空间被破坏,然后让出这部分空间(声明一段变量空间专供链接库使用),再继续声明其它的变量?但是若是我想象的这样,链接库之间变量空间的冲突就无法解决了.
也许我以上说的话中会有错误,那么请YAN或其它人纠正一下,或者告诉我有什么好的解决方法?
发表于 2007-8-4 09:29:03 | 显示全部楼层
以下代码经编译器编译后运行的结果使我不可理解:
  1. struct noname
  2. {
  3.   char c;
  4. };
  5. void main()
  6. {
  7.   struct noname noname1,noname2[3];
  8.   printf("%d\n",noname1);
  9.   printf("%d,%d,%d\n",noname2[0],noname2[1],noname2[2]);
  10.   getchar();
  11. }
复制代码
运行结果竟然是:
  1. 8197
  2. 6,7,8
复制代码
而将代码改为以下时,就与我预料的结果一样:
  1. struct noname
  2. {
  3.   char c;
  4. };
  5. void main()
  6. {
  7.   struct noname noname1,noname2[3];
  8.   printf("%d\n",noname1);
  9.   printf("%d,%d,%d\n",noname2,noname2+1,noname2+2);
  10.   getchar();
  11. }
复制代码
结果:
  1. 8197
  2. 8198,8199,8200
复制代码
这是为什么?YAN,这是你预料之内的事吗?还是编译器的bug?
发表于 2007-8-4 13:02:24 | 显示全部楼层
你想输出的是什么?
发表于 2007-8-4 14:27:09 | 显示全部楼层
为什么是6,7,8?不是其他数字比如2,3,4?
发表于 2007-8-4 14:45:33 | 显示全部楼层
struct noname没有初始化
 楼主| 发表于 2007-8-4 19:17:05 | 显示全部楼层
引用第1083楼Lumj2007-08-04 09:29发表的“”:
以下代码经编译器编译后运行的结果使我不可理解:
[code]struct noname
{
   char c;
};
.......
编译器的bug,下一版本更正.......
发表于 2007-8-4 22:04:07 | 显示全部楼层
支持..期待
发表于 2007-8-4 23:22:17 | 显示全部楼层
引用第1088楼hangtao2007-08-04 22:04发表的“”:
支持..期待
我也是.....
发表于 2007-8-5 06:05:16 | 显示全部楼层
纠正一个小错误:
TC1000.y中的中断说明0x0509,不是0x0867~0x0968,而是0x0867~0x0868
发表于 2007-8-5 10:46:39 | 显示全部楼层
那个,问一下,4灰度能完美实现掩膜效果吗?

不知道我的TC1KS什么时候才有4灰度可以用啊。
发表于 2007-8-5 11:59:06 | 显示全部楼层
不是有个1ks的测试版么?
发表于 2007-8-6 15:43:46 | 显示全部楼层
我又发现一个问题,我对它毫无办法.请求YAN帮助.
由于代码很长,不便放在这里,所以我只能概括一下我遇到的情况:有一段代码,包含7个全局结构和3个Y文件,编译通过,一切正常.现在我仅仅在代码里加入这样一条命令:#include "a.y",再去编译,却发生了这样一件事:编译器说Rectangle是未定义的函数,而实际上这条语句没有任何错误,我一头雾水,把这行去掉,再去编译,编译器又说Refresh是未定义的函数.然后,看似很有用的一个线索是,我把:#include "a.y"改为:#include "b.y"就能正常编译,其中a.y中有结构声明和结构引用传参,而b.y没有.另外,a.y经过单独的测试,毫无问题.
大概仅凭这些YAN还看不出可能是什么问题,那么最好我们能在QQ上再说一说.
发表于 2007-8-7 12:27:37 | 显示全部楼层

不错
有兴趣的话可以加入lvc开发
 楼主| 发表于 2007-8-7 14:28:12 | 显示全部楼层
我对lvc不太熟悉耶,可以么?
发表于 2007-8-7 14:32:23 | 显示全部楼层
没关系
目前是上学呢还是工作呢?
 楼主| 发表于 2007-8-7 14:47:04 | 显示全部楼层
大四第一学期了,一门课程(C++)。
发表于 2007-8-7 14:48:55 | 显示全部楼层
研,问你一个问题
ChgData是不是实时运行的??
如果直接调入4灰度的图片数据是不是速度会大幅提升??
 楼主| 发表于 2007-8-7 14:51:03 | 显示全部楼层
ChgData函数是将16灰度图片数据转换成4灰度图片数据的,即,输入16灰度图片数据,输出4灰度图片数据。
不能输入4灰度图片数据。
 楼主| 发表于 2007-8-7 14:52:16 | 显示全部楼层
有链接库源代码啊,你可以直接看的。
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-5-14 11:49 , Processed in 0.023246 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表