博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
deprecated conversion from string constant to ‘char*’
阅读量:7211 次
发布时间:2019-06-29

本文共 734 字,大约阅读时间需要 2 分钟。

deprecated conversion from string constant to ‘char*’

#include 
using namespace std;int fuc(char *a){ cout << a << endl;}int main(){ fuc("hello");}

Linux 环境下当GCC版本比较高时,编译代码可能出现的问题

问题是这样产生的,先看这个函数原型:

1
void 
someFunc(
char 
*someStr);

再看这个函数调用:

1
someFunc(
"I'm a string!"
);

把这两个东西组合起来,用最新的g++编译一下就会得到标题中的警告。

为什么呢?原来char *背后的含义是:给我个字符串,我要修改它。

而理论上,我们传给函数的字面常量是没法被修改的

所以说,比较和理的办法是把参数类型修改为const char *。

这个类型说背后的含义是:给我个字符串,我只要读取它。

如何同时接收const类型和非const类型?重载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using 
namespace 
std;
 
int 
fuc(
char 
*a)
{
    
cout << a << endl;
}
int 
fuc(
const 
char 
*a)
{
    
cout << a << endl;
}
int 
main()
{
    
char 
a[] = 
"hello 123"
;
    
fuc(a);
    
const 
char 
b[] = 
"hello 123"
;
    
fuc(b);
}

转载地址:http://qxgum.baihongyu.com/

你可能感兴趣的文章
java B2B2C 源码 多级分销Springcloud多租户电子商城系统- 整合企业架构的技术点(二)...
查看>>
微信小程序
查看>>
区块链+金融
查看>>
阿里开发者招聘节 | 面试题14:如何实现两金额数据相加(最多小数点两位)...
查看>>
一些不错的文章
查看>>
Python爬虫常见面试题(二)
查看>>
【译】Web Components简介
查看>>
java生成缩略图类源码
查看>>
java虚拟机
查看>>
Script标签的async和defer
查看>>
JAVA 多用户商城系统b2b2c-kafka处理超大消息
查看>>
java B2B2C源码电子商城系统:服务消费(基础)
查看>>
API 集合
查看>>
我的友情链接
查看>>
a+aa+aaa+aaaa+aaaaa
查看>>
thinkphp_ajax分页实现_无需整理
查看>>
无聊软件-GIT屏幕录制工具_已迁移
查看>>
在论坛如何写好原创技术贴
查看>>
Scala Trait详解
查看>>
使用VMware Workstation搭建基于Linux的Oracle 10g RAC
查看>>