c/c++语言开发共享如何在没有原型的情况下找到C函数?

公司政策规定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

      (0)
      上一篇 2021年1月10日
      下一篇 2021年1月10日

      精彩推荐