有没有办法让结构的某些成员不可修改?

rsj*_*ani 2 c struct

我有一个结构:

struct ABC
{
   int size;
   int arr[15];
};
Run Code Online (Sandbox Code Playgroud)

我知道我不能把'int size'变成'const int size'所以我怎样才能保持size成员不被意外/故意修改.在C中有办法解决吗?

谢谢.

小智 7

它可以是const:

struct ABC
{
   const int size;
   int arr[15];
};

int main() {
    struct ABC a = {3, {1,2,3} };   // ok
    a.size = 42;    // error
}
Run Code Online (Sandbox Code Playgroud)

  • 这不会阻止通过指针操作进行有意修改.就像OP的注释一样. (2认同)