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