Я не хочу использовать cupsAddOption()
потому что он имеет квадратичное поведение (только когда-либо добавляет одну запись в выделенный блок памяти), и потому что он выводит все строки имени и значения, в то время как в моем случае все они являются строковыми литералами. Так в звонке cupsPrintFile()
Я хочу передать массив C cups_option_t
s.
Но как программист C ++ я не могу назначить строковый литерал C (имеющий тип const char[]
) к cups_option_t
поля, потому что они char*
,
Это просто ленивый дизайн API или CUPS на самом деле манипулирует этими строками?
Как они должны указывать на malloc
Эд и strcpy
По-видимому, они не могут быть const
,
Какие штрафы за производительность вы на самом деле ожидаете? Как часто вы используете эту функцию на самом деле? Оптимизация перед матчем часто является плохим привычкой и приводит к сложному обслуживанию кода.