在C+中使用FAR*+;11

在C+中使用FAR*+;11,c,c++11,C,C++11,首先,我读到: A 从中我知道分段体系结构计算机中的FAR指针是一个包含段选择器的指针,可以指向当前段之外的地址 B 从这一点我知道:'远远落后于16位的时候,堆内存被分段。近距离数据在规模和速度上受到限制,远距离数据允许更大但更昂贵 我得到了一个旧的C/C++代码来翻译成C++11,它大量使用short-FAR*。short-FAR*类型在VS2013中无法解析(使用C++11),因此我的问题是我是否应该替换short-FAR*数据类型[我知道答案可能是“肯定的”],如果是这样的话,用什么?如

首先,我读到:

A

从中我知道分段体系结构计算机中的
FAR
指针是一个包含段选择器的指针,可以指向当前段之外的地址

B

从这一点我知道:'远远落后于16位的时候,堆内存被分段。近距离数据在规模和速度上受到限制,远距离数据允许更大但更昂贵


我得到了一个旧的C/C++代码来翻译成C++11,它大量使用
short-FAR*
short-FAR*
类型在VS2013中无法解析(使用C++11),因此我的问题是我是否应该替换
short-FAR*
数据类型[我知道答案可能是“肯定的”],如果是这样的话,用什么?如果没有,我怎样才能解决这个问题呢?

只需将它们全部去掉,让编译器来处理即可

如果您希望从代码中删除它们,使用上下文感知IDE(任何像样的IDE都应该这样做),您可以:

  • #定义FAR/*nothing*/
  • 将标识符FAR替换为空标识符
  • 删除剩余的
    #定义

  • 把它们全部去掉,让编译器来处理

    如果您希望从代码中删除它们,使用上下文感知IDE(任何像样的IDE都应该这样做),您可以:

  • #定义FAR/*nothing*/
  • 将标识符FAR替换为空标识符
  • 删除剩余的
    #定义

  • 是的,您应该删除它,因为我认为您不再使用分段内存体系结构。在任何现代系统上,表示为
    short FAR*
    的概念现在表示为
    short*
    ,即只是一个简单的“指向
    short
    ”类型的指针

    不要乱搞预处理器,那只会增加混乱

    只需使用任何功能强大的文本编辑系统(IDE或文本编辑器是不错的第一手选择)即可删除文本


    请记住使用全大写搜索字符串
    FAR
    ,并使用区分大小写的搜索,并启用任何“仅全字匹配”标志以减少错误匹配的风险。对空字符串进行替换,有效地从代码中编辑出
    FAR
    单词。

    是的,我认为您应该删除它,因为您不再使用分段内存体系结构。在任何现代系统上,表示为
    short FAR*
    的概念现在表示为
    short*
    ,即只是一个简单的“指向
    short
    ”类型的指针

    不要乱搞预处理器,那只会增加混乱

    只需使用任何功能强大的文本编辑系统(IDE或文本编辑器是不错的第一手选择)即可删除文本


    请记住使用全大写搜索字符串
    FAR
    ,并使用区分大小写的搜索,并启用任何“仅全字匹配”标志以减少错误匹配的风险。对空字符串进行替换,有效地从代码中编辑出
    FAR
    单词。

    #define FAR/*nothing*/
    并让编译器处理这些东西怎么样?我在自己的问题中引用了这个确切的问题,并说它对我没有帮助@昆汀我很受诱惑,因为有太多的参考文献。然而,这并不适合我,我希望通过删除这些可能的冗余类型,使代码“干净”…第二个链接中被接受的答案基本上回答了这个问题。你按照@Quentin说的做,或者你只是全局搜索/用零替换它们。@RetiredInja no“它们通常会扩展为零”是最好的答案,而不是回答我上面的问题。。。我很高兴接受您的回答,即“将
    short FAR*
    替换为
    short*
    ”…用
    #define FAR/*nothing*/
    并让编译器处理这些东西怎么样?我在自己的问题中引用了这个确切的问题,并说它对我没有帮助@昆汀我很受诱惑,因为有太多的参考文献。然而,这并不适合我,我希望通过删除这些可能的冗余类型,使代码“干净”…第二个链接中被接受的答案基本上回答了这个问题。你按照@Quentin说的做,或者你只是全局搜索/用零替换它们。@RetiredInja no“它们通常会扩展为零”是最好的答案,而不是回答我上面的问题。。。我很高兴接受您的回答,其中说明“将
    short-FAR*
    替换为
    short*
    ”……那么您是说我的
    short-FAR*
    在使用您建议的选项2时变成
    short*
    。@Killercam(已编辑)这是一个待办事项列表,而不是三方选择。您只需注册一个标识符,这样IDE就可以定位所有的事件,然后一次替换它们。所以所有的
    short FAR*thing
    都会变成
    short*thing
    。谢谢,我很感激(我不应该把它称为“选项”!)。但是对于待办事项列表,当“用空标识符替换
    FAR
    时,是否将
    short FAR*
    转换为
    short*
    ?是的,您希望从代码中完全删除所有出现的
    FAR
    。@Killercam是的。(对于交错编辑,我很抱歉,在发布之前我会滚动手指7次!)那么,当使用您建议的选项2时,您是说我的
    short FAR*
    变成
    short*
    ?@Killercam(已编辑)这是一个待办事项列表,而不是三方选择。您只需注册一个标识符,这样IDE就可以定位所有的事件,然后一次替换它们。所以所有的
    short FAR*thing
    都会变成
    short*thing
    。谢谢,我很感激(我不应该把它称为“选项”!)。但是在待办事项列表中,当“用空标识符替换
    FAR
    ”时,是否将
    short FAR*
    转换为
    short*
    ?是,