Does C provide a way to declare an extern variable as 'read-only', but define it as writeable?

前端 未结 2 983
栀梦
栀梦 2021-01-19 12:20

I\'m developing a hardware abstraction library for an embedded product using GCC C. Within the library there is a variable that should be read-only to the application that l

2条回答
  •  鱼传尺愫
    2021-01-19 12:54

    You can use pointer to get past the issue.

    module.c

    static int readwrite = 0;
    int const * const readonly = &readwrite;
    

    module.h

    extern int const * const readonly;
    

    If there is no reason to expose address of the variable, you should prefer Lundins getter approach to have proper encapsulation.

提交回复
热议问题