首页 > 代码库 > C++: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

C++: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

2016-12-5 16:17:09

----------------------------

在CentOS下开发CTP系统,引入C++程序的过程中,编译(g++ ****)时,有如下提示

【1】  testMdApi.cpp:15:45: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
char *ppInstrumentID[] = {"cu0907", "cu0909"}; // 行情订阅列表
^
testMdApi.cpp:15:45: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

虽然有这样的提示,但它仍然是有效的C++代码,因为所写的char* 是具有c风格的字符串,所以g++不识别

可以选择在编译的时候加上:g++ -Wno-write-strings text.cpp //忽略警告。。。

其实这样是并不是很安全

 


【2】  testMdApi.cpp:21:15: error: ‘::main’ must return ‘int’
void main(void)

不是代码的问题,而是编译器的问题

C语言的 标准允许main函数为void类型

而按照C++的标准 main 必须是int类型

但很多IDE或编译器不一定准守C++标准,比如VS

 

 

 

 

 

 

 

C++: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]