我正在使用gcc编译一些C++代码,当使用“Debug”配置进行编译时,代码可以正常编译,但在“Release”配置下会发出警告。编译选项的唯一差异是:
“Debug”:
相关的两个语句如下:
为什么警告信息不同?
“Debug”:
g++ -O0 -g3 ...
“Release”:g++ -O3 ...
我在“Release”构建中看到的消息:../src/xml.cpp: In static member function ‘static Z<char>* XML::ReadToZ(const char*, XMLTransform*, XMLTransformData*)’:
../src/xml.cpp:5034: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result
../src/xml.cpp:5041: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result
相关的两个语句如下:
/* 5034 */ fread((*y).operator char *(),1,S,fp);
/* 5041 */ fread(yy.operator char *(),1,S,fp);
为什么警告信息不同?