相关疑难解决方法(0)

gcc nullptr问题

我正在移植现有代码以在gcc 4.7.2下编译并且遇到了与nullptr的奇怪问题.我已经设法将其归结为一个简单的测试用例:

#include <stdio.h>

const char* g_marker = "Original value";

void SetMarker( const char* s )
{
    g_marker = s;
}

char* Test1()
{
    return SetMarker( "I was here 1" ), nullptr;
}

char* Test2()
{
    SetMarker( "I was here 2" );
    return nullptr;
}

char* Test3()
{
    return SetMarker( "I was here 3"), (char*)NULL;
}

int main()
{
    char* returnValue = Test1();
    printf( "%s\n", g_marker );
}
Run Code Online (Sandbox Code Playgroud)

用g ++ test.cpp -o test -std = c ++ 0x编译它.

我期望的输出是"我在这里1",但我得到"原始值",表明从未调用过SetMarker.

调用Test2或Test3会得到预期的输出. …

c++ gcc nullptr c++11 gcc4.7

6
推荐指数
1
解决办法
1474
查看次数

标签 统计

c++ ×1

c++11 ×1

gcc ×1

gcc4.7 ×1

nullptr ×1