警告:当我在函数def中添加没有实际参数的形式参数时,从字符串常量到' char* '的转换已弃用
warning: deprecated conversion from string constant to ‘char*’ when i add a formal parameter in the function def but with no actual parameter
下面的代码在编译
时不会抛出任何警告 #include <iostream>
void GetHMACCode(unsigned char* buffer,long bufferLength,unsigned char** pResult,unsigned int &nResultLen){}
unsigned char *pCRCBufferptr ;
main() {
unsigned char *pHMAC = NULL;
int ncrcDataLength;
unsigned int nHMACLen = 0;
GetHMACCode(pCRCBufferptr,ncrcDataLength,&pHMAC,nHMACLen);
}
但是当我在函数中添加额外的参数(而不是在函数调用中)时,我得到下面的警告
myFile.cpp: In function ‘int main()’:
myFile.cpp:11: warning: deprecated conversion from string constant to ‘char*’
在函数
中添加了额外的参数 #include <iostream>
void GetHMACCode(unsigned char* buffer,long bufferLength,unsigned char** pResult,unsigned int &nResultLen,char *extra_arg = "11111111111111111111"){}
unsigned char *pCRCBufferptr ;
main() {
unsigned char *pHMAC = NULL;
int ncrcDataLength;
unsigned int nHMACLen = 0;
GetHMACCode(pCRCBufferptr,ncrcDataLength,&pHMAC,nHMACLen);
}
我很困惑为什么会抛出这个警告
谢谢光辉
该警告是关于将字符串字面值转换为非const char* (char* extra_arg = "..."
)。
将函数的定义更改为以下内容应该会使警告消失:
void GetHMACCode(unsigned char* buffer,long bufferLength,unsigned char** pResult,unsigned int &nResultLen, const char *extra_arg = "11111111111111111111"){}
添加const
解决您的问题:
void GetHMACCode(unsigned char* buffer,
long bufferLength,
unsigned char** pResult,
unsigned int &nResultLen,
const char *extra_arg = "11111111111111111111") // const added here
{}
相关文章:
- 如何使用Luacneneneba API正确读取字符串和表参数
- 如何使用字符串文字作为宏参数
- 如何将可变长度参数联接为字符串
- 如何使用字符串find_first_of缓冲区形式(size_t n 参数)
- 具有字符串化的可变参数宏的现代/通用方法
- C++ 构造函数参数:字符串、整数、整数、整数
- 当C 中的系统调用conconculables时,参数字符串中的字符损失
- 模板参数字符串与整数
- #define 参数字符串化,但宽字符串 L " instead of "
- std::getline 用于 ifstream,使用参数字符串或 char *
- 通过参数字符串化宏调用模板函数
- 可变参数字符串比较
- 为什么位集的构造函数有参数字符串::charT 零,字符串::charT one)
- c++中stdbind在带有参数(字符串)的函数中的用法
- 当使用字符变量作为参数(字符串转换为字符)时,Std::rename()文件将不起作用
- C/ c++预处理器中的宏参数字符串化为宽字符串字面值
- 如何比较Visual C++中的参数字符串
- C++错误:推断出参数'T'字符串与常量字符的冲突类型 *
- 传递参数字符串,其中包含空格和引号
- 函数参数字符串通过引用传递