我的意思是我们可以将 C 中的函数声明为 const
void fun(int iVar) const;
int g_var = 1;
void fun(int iVar)
{
//do some thing
g_var = iVar;
}
不是在标准 C 中,因为没有类或对象(如在“类实例,即具有关联函数的数据集合”中),函数没有什么可以const
“反对”的。
理论上可能有这样一种表示法来表示“这个函数没有全局可见的副作用,它是其输入参数的纯函数”,但没有。
作为扩展, GNU GCC 编译器支持将函数声明为const
or pure
:
int square(int) __attribute__((pure));
该__attribute((pure))
部分是 GCC 特定的。