8

我看到 <?= 和 >?= 在代码中使用: //community.topcoder.com/stat ?c=problem_solution&rm=151152&rd=5854&pm=2923&cr=310333

我尝试在没有包含的情况下进行编译以测试它是否是标准的,但它不起作用。然后我添加了包含,但它仍然给出了同样的错误:

question-mark.cpp:15:5:错误:“?”之前的预期主表达式 令牌 question-mark.cpp:15:6:错误:'='之前的预期主表达式令牌 question-mark.cpp:15:9:错误:';'之前的预期':' token question-mark.cpp:15:9: error: ';'之前的预期主表达式 令牌

#include <stdio.h>
#include <algorithm> 
#include <iostream> 
#include <sstream> 
#include <string> 
#include <vector> 

using namespace std;

int main()
{

    int x = 3;
    int y = 2;
    x >?= y;
    printf("x = %d\n", x);

    return 0;
}

以下是它在链接代码中的使用方式:

x <?= h[i][j];  // x = (h[i][j] < x) ? h[i][j] : x;

我怎样才能使这项工作?


应用程序在启动器中按图标启动时完全重启

我正在尝试发布我的第一个 android 应用程序以发送给一些测试人员。但是,我遇到了一个问题。当您退出应用程序,然后通过其图标启动它重新进入它时,它会重新启动整个应用程序,而不是返回到之前的位置。即使您在退出后立即重新进入,也会发生这种情况。但是,如果我按住主页按钮并通过最近的应用程序列表启动它,它就不会发生。

我在网上搜索了其他有这个问题的人,有几个,但没有人对为什么会发生在他们身上有一个可靠的答案。在旧问题中建议在清单文件中将启动模式设置为 singletask 或 singleinstance,但这对我没有帮助,此外 - 据我了解,android 的默认行为是返回到任务的先前状态在这种情况下,所以我不知道为什么我需要特殊的清单选项才能做到这一点。

这个问题最离奇的是,如果我用eclipse和调试器把app放到手机上,就不会出现这个问题。我什至不需要连接到调试器,似乎只要我有应用程序的调试版本,问题就不会发生。但是,如果我使用发布版本(我使用 Eclipse 中的 Android Tools - Export Signed Application Package 菜单选项创建它),就会出现问题。如果有人对造成这种情况的原因有任何见解,我很想听听您的想法。

4

2 回答 2

9

这些是 GCC 扩展运算符。与(是 "max" 运算符)a <?= b具有相同的含义,但它只对其左侧表达式求值一次。当是一个变量时,这并不重要,但它在表示表达式时可能会有所不同,尤其是当表达式有副作用时。例如,在a = min(a, b)>?=aa

*dest++ <?= *src++;

++indest++只会被评估一次。

这两个运算符现在都已被弃用

于 2013-04-21T00:00:22.807 回答
3

这是一个 GCC 扩展。x >?= y相当于:

x = max(x, y);

虽然我有一段时间没有看到它使用过。

于 2013-04-20T23:59:01.423 回答