C++手工加栈

转载出处:ACM输入优化

今天忽然遇见了一行很牛逼的代码:#pragma comment(linker, “/STACK:1024000000,1024000000”)
据说是手动加栈的,作为小白的我自然是只好各种查资料。

然后牵扯到了很多基础概念,C、C++、GCC、G++、把我搞得晕头转向,都分不清谁是谁了。
经查阅资料:
G++和C++都是C++语言的编译器,二者基本相同。
而GCC和C都是C语言编译器,而这差别实际也不大。
尽管C++规范中兼容绝大部分C的用法和几乎全部函数,但毕竟还是有更改的地方。

ACM模版

解决爆栈,手动加栈

这个关系一下子真的有些分不清你你我我,但是可以肯定的是当我们用C++时,可以用上边的这句代码进行手动加栈。(#pragma comment(linker, “/STACK:1024000000,1024000000”))

而C时,我们则要说另外一句代码:#pragma GCC optimize (“O2”)
我想,对于这个02你应该会有一丝的警觉,02表示一种状态,那么是不是还有其他的状态呢?
对,这个真有。GCC的#pragma优化主要分为四种 -O0 -O1 -O2 -O3
-O0 表示无优化状态
-O1 表示对代码进行了优化
-O2 表示减小目标文件大小
-O3 表示减小代码段及栈空间的大小

对部分代码可以去除优化:
#pragma GCC push_options
#pragma GCC optimize (“O0”)

或者也可以增加优化
#pragma GCC pop_options

另外要说的是,想要对代码进行进一步的优化,可以使用输入加速外挂,对C、C++均可行。

转载于:https://www.cnblogs.com/wafish/p/10465359.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值