我是C编程的新手,我正在开展一些项目,我必须在不同的源文件之间共享大量信息。
在一个源文件中,我声明并初始化特定结构的变量,而在其他文件中,我需要使用指向该变量的指针,以访问其中的信息,但不能更改它。
代码:
//file 1 :
typedef struct {
bool (*decodeParameters)(void* interface, uint8_t command, uint16_t parameters[]);
bool value;
} i_actuator_t;
static const i_actuator_t iActuator = {
decodeActuatorParameters, //pointer to a function in the same file 1
false
}; //this variable has to be protected so it cannot be edited anywhere else , and it cannot be global .
i_actuator_t* getActuatorInterface (void) = {
return &iActuator;
}
并且在file 2
中,我想做类似的事情:
i_actuator_t* iActuatorPTR = getActuatorInterface();
是static const
变量,这是正确的做法吗?
有更好的解决方案吗?
感谢
答案 0 :(得分:3)
您的函数返回的指针也应标记为const
。那么使用此返回值的变量也应如此。