2013-07-16 267 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'完全一樣。 –

回答

相關問題