公司政策规定C源代码中的每个函数都有一个原型。 我inheritance了一个带有自己的make系统的项目(所以我无法在gcc或Visual Studio上测试它)并发现其中一个文件有一些声明没有原型的静态函数。 是否有一种方法(不一定是编译器)列出所有.c文件中没有原型的所有函数?
gcc有一个选项来警告你:
gcc -Wmissing-prototypes
您可以将此警告转换为错误以停止编译并强制用户修复它:
gcc -Werror=missing-prototypes
如果你只想列出它,你可以使用gcc
选项-Wmissing-prototypes
和grep进行编译,因为日志中没有以前的原型 。
基于编辑更新 :
既然您现在提到不能使用gcc,那么您必须为当前的编译器找到类似的选项。 大多数编译器都有这样的选择。 从手册页或内置帮助输出开始。
ctags
可以做到这一点!
--c-kinds=p
生成所有函数原型的列表
--c-kinds=f
生成所有函数定义的列表
现在你只需要比较那些。
diff -u <(ctags -R -x --sort=yes --c-kinds=f | cut -d' ' -f1) <(ctags -R -x --sort=yes --c-kinds=p | cut -d' ' -f1) | sed -n 's/^-//p'
以上就是c/c++开发分享如何在没有原型的情况下找到C函数?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/545572.html