博客
关于我
C语言/C++ main函数参数argc和argv不是const的原因
阅读量:594 次
发布时间:2019-03-09

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

 翻译自:

int main(int argc, char *argv[])

如 Item#3指出"应尽可能使用const",为何不将argc和argv默认设为const?在何种情景下argc会被修改?

对此问题的回答是:

该问题有历史因素。C将这些参数定义为"非常量"以兼容现有的C代码。诸如getopt等的UNIX API会修改argv[],所以不能被设为const。有趣的是,getopt的原型表明它不会修改argv[]本身,而可能修改其指向的地址:.。

给argc和argv加上const不会获得什么益处,而且这会使得一些老旧的编程练习失效:

// print out all the arguments:while (--argc)    std::cout << *++argv << std::endl;

 

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

你可能感兴趣的文章
Netty工作笔记0057---Netty群聊系统服务端
查看>>
Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接
查看>>
Netty工作笔记0063---WebSocket长连接开发2
查看>>
Netty工作笔记0070---Protobuf使用案例Codec使用
查看>>
Netty工作笔记0072---Protobuf内容小结
查看>>
Netty工作笔记0074---handler链调用机制实例1
查看>>
Netty工作笔记0077---handler链调用机制实例4
查看>>
Netty工作笔记0081---编解码器和处理器链梳理
查看>>
Netty工作笔记0083---通过自定义协议解决粘包拆包问题1
查看>>
Netty工作笔记0084---通过自定义协议解决粘包拆包问题2
查看>>
Netty工作笔记0085---TCP粘包拆包内容梳理
查看>>
Netty常用组件一
查看>>
Netty常见组件二
查看>>
netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
查看>>
Netty心跳检测
查看>>
Netty心跳检测机制
查看>>
netty既做服务端又做客户端_网易新闻客户端广告怎么做
查看>>
Netty核心模块组件
查看>>
Netty框架内的宝藏:ByteBuf
查看>>
Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
查看>>