643757107 发表于 2025-2-25 10:12

const关键字能否放函数前面

   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

看了一下,这种函数好像没什么实际意义。

yiy 发表于 2025-2-27 19:49

具体来说,你试图用 const 修饰符声明一个函数 abc,但语法使用不正确。

kmnqhaha 发表于 2025-4-25 15:35

C语言中的 const 关键字通常用于修饰变量,表示该变量的值是不可修改的。

更多更合适ii 发表于 2025-4-25 17:17

void 是一种特殊的类型,表示没有类型,也就是说没有实际的值可以存储或修改。
页: [1]
查看完整版本: const关键字能否放函数前面