外部常数变量

时间:2012-11-28 17:14:38

标签: c variables const

我的一个文件中定义了一个变量,它可能由文件本身的代码操纵,但它始终是任何外部文件的常量值。

如何将变量声明为常量,而不会在将此变量赋值给定义的文件中时引发错误,同时允许编译器优化它的读取,就好像它是那些外部单元中的常量一样?

2 个答案:

答案 0 :(得分:4)

无法修改右值。使用访问器功能来访问它可以保证只提供右值,例如

static int value;

extern int getconst();

int getconst() {
  return value;
}

这样做:

getconst() = -1; // Compiler error

或者,您可以通过指向const的{​​{1}}指针公开您的价值:

const int

答案 1 :(得分:1)

在修改virables的文件中声明如下:

int e = 0, e_ant = 0, adj;

并以这种方式在其他文件中声明:

extern const int e, e_ant, adj;

适合我。我正在使用带有MPLAB的dsPIC。

第一个文件计算所有变量的值。第二个文件仅在LCD显示器中显示这些值,并完全禁止写入此变量。