2013-07-16 172 views
-3

奇怪的行为。 我正在用C++开发android原生应用程序,并有bug。某些功能因某种原因未被调用。经过一番复归和比较..“std :: string const”与“const std :: string”

这使得程序的麻烦..

const std::string STR_PATH_ASSET("assets/"); 
const std::string STR_PATH_SD("/sdcard/unlock_data/assets/"); 
const std::string STR_SUFFIX_PNG(".png"); 
const std::string STR_SUFFIX_KTX(".ktx"); 

这使得工作方案..

std::string const STR_PATH_ASSET("assets/"); 
std::string const STR_PATH_SD("/sdcard/unlock_data/assets/"); 
std::string const STR_SUFFIX_PNG(".png"); 
std::string const STR_SUFFIX_KTX(".ktx"); 

也无妨的作品,但我不知道为什么这diffrerence结果,例如奇怪的行为。任何猜测?


已添加完整来源。

它不仅是“std :: string const”与“const std :: string”的问题,而且是声明本身。抱歉。

这是我的源代码。当我取消注释这些std :: string的东西它不能正常工作。即时通讯绘制东西到我的android,但一些网格(顶点)的初始位置不同时使用该std :: string的东西。在逻辑上它不能影响这个常量是否存在。即时通讯使用Windows cygwin ndk编译器版本4.6,ndk版本14。这个const std :: string声明会影响另一个栈的内存吗?即。透明值或什么?

typedef enum _ImageCompressType{ 
    //REF http://stackoverflow.com/questions/9148795/android-opengl-texture-compression 
    COMPRESS_UNAVAILABLE = -1, 
    COMPRESS_ETC1 = 1, 
    COMPRESS_PVRTC, 
    COMPRESS_ATITC, 
    COMPRESS_S3TC 
}ImageCompressType; 

typedef enum _FileDataFrom{ 
    FROM_ASSET, FROM_SD 
}FileDataFrom; 

//std::string const STR_PATH_ASSET("assets/"); 
//std::string const STR_PATH_SD("/sdcard/unlock_data/assets/"); 
//std::string const STR_SUFFIX_PNG(".png"); 
//std::string const STR_SUFFIX_KTX(".ktx"); 

class ImagesLoader { 
public: 
    ImagesLoader* mgr; 

    static ImagesLoader* getInstance(); 
    static void destroyInstance(); 

    ImageCompressType TypeImgComrpess; 

// GLuint* loadTextures(FileDataFrom from, std::vector<std::string> filename); 
private: 
    ImagesLoader() {} 
    ~ImagesLoader() {} 

    static ImagesLoader* self; 
}; 
+7

它不应该有所作为。 –

+0

但它驱动不同的结果.. – minimanimo

+0

还有其他的事情涉及。 'const std :: string stringName'和'std :: string const stringname'完全一样。 –

回答

相关问题