服用地址我有下面的代碼片段警告:臨時
if((compare(& key,& ALL))
所有已經#defined爲
#define ALL (some_structure){"ALL", 3}
以g
++版本
g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)
編譯沒有任何警告
但在G ++版本
g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
它顯示warning: taking address of temporary
即使它是一個整體warning.the編譯消息顯示aroung 300萬加messages.It是一個傳統的code.is有什麼辦法壓制這個警告?
編輯:
下面是示例代碼
#include <iostream>
using namespace std;
typedef struct test { char * name; int id; }tsTest;
void print(tsTest * T) {
cout<<endl<<"Name :"<<T->name<<endl<<"ID :"<<T->id<<endl; }
int main()
{
print(&(tsTest){"nagaraj",7});
return 0;
}
在g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)
編譯罰款,但在g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
temadd.cpp: In function ‘int main()’:
temadd.cpp:18: warning: deprecated conversion from string constant to ‘char*’
temadd.cpp:18: warning: taking address of temporary
請嘗試創建[最小化,完整和可驗證示例](http://stackoverflow.com/help/mcve)並向我們顯示。在你的問題的代碼中有一些矛盾的信息和語法問題。 –
它是C++嗎? '{| * ALL * |,7}''''''''''''你對運算符重載的嚴重玩法不是嗎? – YSC
像什麼?它顯示錯誤的所有(這是#defined結構) –