如何将 int 传递到需要 const int 的函数中。
或者有没有办法修改 cont int 值?
编辑:我应该早先提到这一点,我正在使用 ccs c 编译器,用于对 pic 微控制器进行编程。 fprintf 函数将 constant 流作为其第一个参数。它只会接受常量 int 并抛出编译错误,否则“Stream 必须是有效范围内的常量。”。
编辑2:流是一个常量字节。
函数参数列表中的顶级
const
完全被忽略,所以
void foo(const int n);
与
完全相同void foo(int n);
所以,你只需通过一个
int
。
唯一的区别在于函数 definition,其中
n
在第一个示例中是 const
,而在第二个示例中是可变的。因此,这个特定的const
可以被视为实现细节,应该在函数声明中避免。例如,这里我们不想修改函数内部的n
:
void foo(int n); // function declaration. No const, it wouldn't matter and might give the wrong impression
void foo(const int n)
{
// implementation chooses not to modify n, the caller shouldn't care.
}
这不需要愚弄。需要
const int
类型参数的函数将很乐意接受 int
类型参数。
以下代码可以正常工作:
void MyFunction(const int value);
int foo = 5;
MyFunction(foo);
因为参数是通过值传递的,所以const
实际上毫无意义。唯一的作用是确保函数的变量的本地副本不被修改。无论参数是否被视为
const
,传递给函数的变量将永远不会被修改。