打印
[学习资料]

const关键字能否放函数前面

[复制链接]
706|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
643757107|  楼主 | 2025-2-25 10:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   40 | const abc(void)
      | ~~~~~ ^
      | int
1 error generated.
这么做报错

你遇到的错误信息表明代码中存在语法问题。具体来说,你试图用 const 修饰符声明一个函数 abc,但语法使用不正确。
在 C 或 C++ 中,const 修饰符不能像你写的那样直接用于函数声明。const 通常用于表示变量或指针是不可修改的,或者用于指定成员函数不会修改调用它的对象。

正确的函数声明
如果你想声明一个返回 int 类型且没有参数的函数 abc,应该这样写:
int abc(void);
如果你是想用 const 修饰函数的返回值或参数,需要调整语法。例如:
返回常量整数的函数:
const int abc(void);  // 返回一个常量整数
经过测试这样做真的可以无错误,无警告
const int abc(void)
{
    return 0;
}
int可以换成void吗?
const void abc(void)
{
}


main.c:40:15: warning: function cannot return qualified void type 'const void' [-Wqualified-void-return-type]
   40 | const void abc(void)
      |               ^
1 warning generated.
看来不能,现在搞懂了。

使用特权

评论回复
沙发
xixi2017| | 2025-2-25 10:51 | 只看该作者
看明白了,原来const只能存储常量。

使用特权

评论回复
板凳
jiekou001| | 2025-2-26 15:24 | 只看该作者
const 是个好用的关键字。

使用特权

评论回复
地板
wanduzi| | 2025-2-26 18:54 | 只看该作者
看了一下,这种函数好像没什么实际意义。

使用特权

评论回复
5
yiy| | 2025-2-27 19:49 | 只看该作者
具体来说,你试图用 const 修饰符声明一个函数 abc,但语法使用不正确。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

217

主题

3891

帖子

11

粉丝