有没有理由为什么`cups_option_t :: name`和`:: value`不是' t`conc char *`?

时间:2015-07-04 18:50:13

标签: c++ string-literals cups

我不想使用cupsAddOption(),因为它具有二次行为(只会在分配的内存块中添加一个条目),并且因为它会覆盖每个名称和值字符串,而在我的情况下,它们都是字符串文字。因此,在调用cupsPrintFile()时,我想传递一个cups_option_t的C数组。

但作为C ++程序员,我无法将C字符串文字(类型为const char[])分配给cups_option_t字段,因为它们是char*

这只是懒惰的API设计,还是CUPS实际上就地操作这些字符串?

1 个答案:

答案 0 :(得分:0)

因为它们指的是malloc ed和strcpy内存,所以它们显然不能是const

您实际期望的性能惩罚是什么?你经常使用这个功能的频率是多少?预先优化通常是一个糟糕的习惯,导致难以维护代码。