我总是搞砸了怎么用const int*,const int * const和int const *正确的.是否有一套规则来定义您能做什么和不能做什么?
我想知道在任务,传递到职能等方面所做的所有事情和所有不应做的事情.
我一直在收到这个警告:
note: expected ‘const char **’ but argument is of type ‘char **’
Run Code Online (Sandbox Code Playgroud)
现在,我通过将它们转换为传递参数const char **.还有其他方法我可以摆脱它吗?
#include <iconv.h>
size_t iconv (iconv_t cd, const char* * inbuf,
size_t * inbytesleft,
char* * outbuf,
size_t * outbytesleft);
Run Code Online (Sandbox Code Playgroud)
但是,当我检查iconv.h我的系统时,功能概要是这样的:
extern size_t iconv (iconv_t __cd, char **__restirct __inbuf,
size_t *__restrict __inbytesleft,
char **__restirct __outbuf,
size_t *__restrict __outbytesleft);
Run Code Online (Sandbox Code Playgroud)
在这两个函数概要中,一个是const char**,但另一个只是char**.
为什么文档中的函数概要与我系统中的函数概要不同?为什么iconv函数需要一个非const的inbuffer?
我的g ++版本是6.3.0.