1

ファイルの 1 つで定義された変数があります。ファイル自体のコードによって操作される可能性がありますが、外部ファイルに対しては常に定数値です。

この変数に定義されているファイル内の値を割り当てる際にエラーを発生させずに、変数を定数として宣言するにはどうすればよいですか?

4

2 に答える 2

4

右辺値は変更できません。アクセサー関数を使用してアクセスすると、右辺値のみを提供することが保証されます。

static int value;

extern int getconst();

int getconst() {
  return value;
}

これにより、次のようになります。

getconst() = -1; // Compiler error

constまたは、へのポインターを介して値を公開できますconst int

#include <stdio.h>

static int value = -1;

extern const int * const public_non_modifiable;
const int * const public_non_modifiable = &value;


int main() {
  printf("%d\n", *public_non_modifiable); // fine
  *public_non_modifiable = 0; // compiler error
  return 0;
}
于 2012-11-28T17:21:16.793 に答える