QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 781|回复: 5

请教一个弱问题

[复制链接]
发表于 2005-3-28 14:24:06 | 显示全部楼层 |阅读模式
在文件里怎样表示IA-32和IA-64

例如:
    在windows下有
    #ifdef WIN32
       ...

Linux下是什么?

#ifdef  IA-64  <----- error
  typedef ......
#else
  typedef ......
#endif

有没有类是IA-64的标识,系统自动检查的。谢谢!
发表于 2005-3-28 14:42:05 | 显示全部楼层
自己#define
回复

使用道具 举报

 楼主| 发表于 2005-3-28 16:08:17 | 显示全部楼层
自己是可以define.但是系统运行我的程序时,程序需要判断当前系统构架是IA-32还是IA-64.怎样判断啊?
  我的程序需要运行在IA-32和IA-64架构下。我又不想做两份。所以想在程序开始时判断系统构架。

  我想glbic是否有这样的开关判断呢?
回复

使用道具 举报

发表于 2005-3-28 17:10:07 | 显示全部楼层
[quote:def99c49d3="hedian"]自己是可以define.但是系统运行我的程序时,程序需要判断当前系统构架是IA-32还是IA-64.怎样判断啊?
  我的程序需要运行在IA-32和IA-64架构下。我又不想做两份。所以想在程序开始时判断系统构架。

  我想glbic是否有这样的开关判断呢?[/quote]

那你也不能用#if #define的方法啊,用#if #define的方法是一份source可以编译出针对ia32平台和ia64平台的两份程序。

运行时?那是不可能的。
回复

使用道具 举报

 楼主| 发表于 2005-3-28 17:40:07 | 显示全部楼层
我的想法:
   使用: system("uname -i > temp");
               读取temp文件,如果文件内容 i386 ---> 即IA-32
                                      如果i686 ---> IA-64
     但是这种方法不太好。还没有想到更好的方法.
回复

使用道具 举报

发表于 2005-3-28 18:58:32 | 显示全部楼层
[quote:2e1ac307ec="hedian"]我的想法:
   使用: system("uname -i > temp");
               读取temp文件,如果文件内容 i386 ---> 即IA-32
                                      如果i686 ---> IA-64
     但是这种方法不太好。还没有想到更好的方法.[/quote]

再说一遍,不可能。除非像AMD64那样处理器本身兼容ia32,你想靠程序运行时去自己判断然后选用什么不同的执行是根本不可能的。

我绝对敢用人格保证你再怎么琢磨下去也是无用功。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-6 11:31 , Processed in 0.077018 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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