Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 指针参数用作常量但未声明为常量时发出警告_C_Warnings_Constants - Fatal编程技术网

C 指针参数用作常量但未声明为常量时发出警告

C 指针参数用作常量但未声明为常量时发出警告,c,warnings,constants,C,Warnings,Constants,在遗留代码中,我们有许多API函数,它们通过非常量指针接收某些内容,并将其视为常量(文档中保证从不在内部修改+常量)。我希望在实际的函数声明中将这个保证作为“const”,但我们有很多这样的遗留函数。是否有编译器(或其他代码分析工具)可以对接收非常量指针(或引用)参数的函数发出警告,并将其视为内部常量?您可以将所有指针声明更改为const(这是一个自动化练习)并退出任何导致编译失败的更改。这是一个有趣的问题。阅读GCC手册页,-Wsuggest attribute=const将建议使用“cons

在遗留代码中,我们有许多API函数,它们通过非常量指针接收某些内容,并将其视为常量(文档中保证从不在内部修改+常量)。我希望在实际的函数声明中将这个保证作为“const”,但我们有很多这样的遗留函数。是否有编译器(或其他代码分析工具)可以对接收非常量指针(或引用)参数的函数发出警告,并将其视为内部常量?

您可以将所有指针声明更改为
const
(这是一个自动化练习)并退出任何导致编译失败的更改。这是一个有趣的问题。阅读GCC手册页,
-Wsuggest attribute=const
将建议使用“const”类型的函数;但是,这只适用于真正“常量”(或“纯”)的函数: