LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: rickxbx

有个gcc优化的问题

[复制链接]
发表于 2005-8-19 20:34:12 | 显示全部楼层
这样行不?


  1. int main(int argc, char *argv[])
  2. {
  3.         {      
  4.                 static int zero = 0;
  5.                 if (zero) {
  6.                         __asm__("__here:");
  7.                 }
  8.         }
  9.         __asm__("jmp __here");
  10. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-19 21:29:35 | 显示全部楼层
Post by daemeon
这样行不?


  1. int main(int argc, char *argv[])
  2. {
  3.         {      
  4.                 static int zero = 0;
  5.                 if (zero) {
  6.                         __asm__("__here:");
  7.                 }
  8.         }
  9.         __asm__("jmp __here");
  10. }
复制代码

呵呵,离题,打屁股
你还不如这么写呢:

  1. if(!argc)
  2. {
  3. }
复制代码

我们讨论的是,是否有可能是纯粹的 if(0)不被优化掉
回复 支持 反对

使用道具 举报

发表于 2005-8-20 18:07:34 | 显示全部楼层
关闭优化编译了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-20 18:50:49 | 显示全部楼层
Post by zxb
关闭优化编译了。

这个帖子就是想请教怎么关闭,-O0吗?这就是默认的。
希望能指点一下,谢谢
回复 支持 反对

使用道具 举报

发表于 2005-8-20 20:58:32 | 显示全部楼层
main()
{
        int i;

        goto mark;
        if(0)
        {
mark:
                i=111;
        }

        printf("i=%d",i);
}
运行结果:
i=111
这个算什么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-20 21:43:30 | 显示全部楼层
Post by netjune
main()
{
        int i;

        goto mark;
        if(0)
        {
mark:
                i=111;
        }

        printf("i=%d",i);
}
运行结果:
i=111
这个算什么?

这个…… 啥也不算 ^_^
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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