小编use*_*599的帖子

printf%s const char*

printf%转换说明符需要一个指向char数组的指针.注意缺乏const.我可以在C中看到这个的原因,并且由于C++包含了C99标准,所以这不会改变.但是,如果我自己编写,我printf可以安全地将参数转换为const char*吗?:

case 's' :
    ptr = va_arg(va, const char*);
    _puts(ptr, strlen(ptr));
    break;
Run Code Online (Sandbox Code Playgroud)

这会有任何意外的语义(注意:我不是在询问未定义的行为,因为这样的实现无论如何都不符合)?

c++ c++11

7
推荐指数
1
解决办法
1680
查看次数

标签 统计

c++ ×1

c++11 ×1