代码的图片在最下面。
问题:为什么 pfn2 和 pfn3 写在外面就会报错:
error C2099: 初始值设定项不是常量。
而 pfn1 写在外面就没有问题?
是编译器不支持?另外在 C 语言标准中提过这种情况吗?在哪里?
我个人认为是加法在常量折叠后依然能进行重定向,
可以作为一个(会重定向的)常量来初始化 pfn1。
而 pfn2 和 pfn3 无法进行常量折叠,所以报错?
可是 C 语言中并没有规定常量折叠和代码生成啊?!!
另外,还存在什么方法模糊函数调用流程,阻止控制流分析呢?
最好是没有什么明显特征的方法,整体看起来像正常代码!
