c++ 学习备忘录

此备忘录是由于学校中教授的关于c和c++理论知识,和工作中遇到的一些学校没有涉及到的一些基础知识,此备忘录主要供自己查阅
1.c++中#define 遇到‘#’与‘##’关键字
      首先在进行宏定义时,如果是这样的语句:#define TOSTRING(x) #x而在后面的代码使用该宏,例如:cout<<TOSTRING(123456)<<endl;则相当于如下代码:cout<<"123456"<<endl;
      如果是进行宏定义时,如果时这样的语句:#define COMBINE(x) x ## 20171011 而在后面的代码中使用该宏,例如:int CONBINE(money);替换宏后的代码如下:int money20171011;
         !!!NOTE:当使用含有‘#’或‘##’的宏定义时,如果参数是另一个宏,则参数宏不会展开!解决此问题,只需要在其中间加一层转换宏即可;例如:#define STR(x) #x  改为#define _STR(x) #x   #define STR(s) _STR(s)

2.C++中new/delete 和 malloc/free的理解

从电脑开机后,物理内存中的任何位置,都是能被读写的(只要操作系统的内存管理模块没发现),如果发现你访问的内存已经被人申请,那么OS的内存管理模块就会执行相应的操作;new和malloc都是向内存管理员去申请一块地方,而delete和free则是告诉内存管理员我放弃对申请的地方的所有权,但是内存的内容不会被处理,仍会保持原样(只要没有程序再申请这块内存之前)如果是类对象的delete操作,则会在放弃所有权之前去执行析构函数,所以内存内容取决于你析构函数执行之后的模样。

3.VS中无扩展名文件(OSG头文件)显示代码高亮的方法记录

打开VS-->点击工具-->选项-->文本编辑器-->文本扩展名-->将无扩展名文件映射到【  】设置即可实现,如已经打开的文件要重新打开才能高亮显示。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值