使用intptr_t作为通用存储(保存指针和整数值)而不是void*?(如下所示:http://www.crystalspace3d.org/docs/online/manual/Api1_005f0-64_002dBit-Portability-Changes.html)
对于我已经读过的内容:
int- > void*- > int往返不保证保持原值; 我猜int- > intptr_t- > int会的void*和intptr_t要求铸件,所以没有在这里得到好处void*表示存储指针时的显式转换次数较少,intptr_t表示存储整数值时转换次数较少intptr_t 需要C99我还应该考虑什么呢?
有问题的应用程序允许用户在纯文本配置文件中定义自己的消息(主要用于定制和/或本地化目的),这些消息在运行时传递给printf样式的函数.如果用户定义的格式化字符串有问题,可能会发生很多不好的事情.
清理这些用户输入的格式化字符串的最佳方法是什么?或者我应该完全放弃这种方法并使用另一种方法让用户安全地自定义消息?
解决方案必须以某种方式移植(Windows,Linux,BSD,x86,x86-64).