![]() |
1
14
如果使用gcc,可以使用
然而,在C中没有可移植的方法来实现这一点。 但是,如果你不介意干扰你的构建系统,你有更多的选择。例如,您可以:
现在编写一个构建脚本来搜索构造函数方法的实例,并将对它们的一系列调用粘贴到生成的.c文件中的函数中。在开始时调用生成的函数
|
![]() |
2
3
标准C不支持这样的操作。如果您不想使用编译器特定的特性来实现这一点,那么您的下一个最佳选择可能是创建一个初始化为false的全局静态标志。然后,每当有人调用需要注册函数指针的某个操作时,都要检查该标志。如果为假,则注册函数,然后将标志设置为真。随后的呼叫将不必执行注册。这类似于OO单例设计模式中使用的惰性实例化。 |
![]() |
3
0
尽管GCC提供了
确保已完成某些预设置(而不是简单变量初始化为编译时值)的通常方法是确保所有需要该预设置的函数。换句话说,比如:
这最好在单独的库中完成,因为它将您与实现隔离开来。 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 5 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 5 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 5 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 5 月前 |