zoukankan      html  css  js  c++  java
  • 关于C语言编译出现give arg types警告问题

    在学习STM32的过程中,发现构建过程中出现了一个warning,如图所示

    通过查阅资料发现了问题所在

    是因为在C语言中,如果定义的一个函数没有形参的话,在定义时括号内必须加上“void”,通过修改代码如图所示,此时问题消失

    进一步附上关于C/C++中无形参函数在定义过程中的一些说明

    C语言中,使用void来指示函数声明中不需要参数。即若函数没有形参,必须加上void,即def_fun(void)

    C语言中,函数def_fun()的默认含义是def_fun()函数有任意多的参数,并非我们的本意(函数没有形参),这和C++是不一样的。

    C++中,函数def_fun()的默认含义是def_fun没有形参,即在C++中,def_fun()与def_fun(void)是等价的,void可以隐式的省略掉。

    总结:当函数没有形参时,C语言最好显示的定义,如:def_fun(void);而C++中def_fun(void)和def_fun()都可以。

    也就是说,无论在C语言还是C++语言中,当没有形参时,显示的定义函数的形参void是没什么坏处的,def_fun(void)。

  • 相关阅读:
    iSCSI又称为IPSAN
    文档类型定义DTD
    HDU 2971 Tower
    HDU 1588 Gauss Fibonacci
    URAL 1005 Stone Pile
    URAL 1003 Parity
    URAL 1002 Phone Numbers
    URAL 1007 Code Words
    HDU 3306 Another kind of Fibonacci
    FZU 1683 纪念SlingShot
  • 原文地址:https://www.cnblogs.com/wind-under-the-wing/p/13812149.html
Copyright © 2011-2022 走看看