C++11新特性探索(一)——原生字符串字面量问题

原生字符串字面量 是C++11标准引入的用于避免手动将字符串换码的新特性。

按照标准要求,其内部的一切文字都将原封不动地、所见即所得地声明为字符串。现在的问题是,预处理指令理应先于一切其他语言特性进行,在一些编译系统中(如 MinGW),预处理阶段甚至是由 cpp.exe(CPreProcessor)这一单独的程序完成的。而预处理指令处于一行开头且以#开始,如果在原生字符串字面量中的一个新行里顶头写上一句 #include 指令,会发生什么呢?

在C++98/03中,这个担心是没有必要的,因为字符串必须在一行内声明完,但由于C++11的这个新特性的提出,就产生了这一问题。事实的真相到底是什么呢?实验让你眼见为实:

//test.cpp
#include <iostream>

using namespace std;

/**测试从这里开始*/
const char str[] =
R"(
#include "example.txt"
)"
;

int main(int argc,char * argv[])
{
	cout << "实际变量 str 的内容是:&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值