强制调用__attribute __((const))函数

时间:2016-09-18 01:50:58

标签: c

我使用的库提供了一个const函数,它在第一次调用时进行一些初始化:

foo_t get_foo(void) __attribute__((const));

我需要在依赖于初始化的其他任务之前调用get_foo。我怎样才能可靠地做到这一点?

编译器可以并且将消除简单的get_foo();调用。

我认为似乎有效的解决方案是将结果分配给虚拟的volatile变量:

volatile foo_t dummy = get_foo();

首先,这个定义明确的行为是什么?

第二,有没有办法在没有虚拟变量的情况下强制调用const函数?

0 个答案:

没有答案