c/c++ 笔记
lgs770950672
这个作者很懒,什么都没留下…
展开
-
c const在*号左右分别表示
int * const a; //表示const修饰a,a是指针变量,不能修改a的地址空间,可以修改其值const int *a; // 不能修改a的值const char *const a; //值和地址都不能修改原创 2014-11-19 23:13:30 · 1418 阅读 · 0 评论 -
位运算的函数整理
/***************************************************** 判断参数x是否是偶数** param[in] x 数值* return 1 是偶数* 0 是奇数************************************原创 2018-01-03 09:05:29 · 472 阅读 · 0 评论 -
vs 2013 cl 查看内存模型使用方法
开始->所有程序->Visual Studio 2013 -> Visual Studio Tools 在打开的文件夹中选择 VS2013 x86 Native Tools Command Prompt命令行输入 cl [文件路径] /d1reportSingleClassLayout[类名] 例:cl D:\vs2013\test\Source.cpp /d1reportSingle原创 2015-11-11 11:23:19 · 529 阅读 · 0 评论 -
C++中const总结(比较全)
对于基本声明const int r=100; //标准const变量声明加初始化,因为默认内部连接所以必须被初始化,其作用域为此文件,编译器经过类型检查后直接用100在编译时替换extend const int r=100; //将const改为外部连接,作用于扩大至全局,编译时会分配内存,并且可以不进行初始化,仅仅作为声明,编译器认为在程序其他地方进行了定义const int r[ ]={1转载 2016-05-31 14:19:22 · 237 阅读 · 0 评论 -
C++中placement new操作符(经典)
placement new是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。它的原型如下:void *operator new( size_t, void *p ) throw() { return p; }首先我们区分下几个容易混淆的关键词:new、operator n转载 2016-05-31 13:50:37 · 261 阅读 · 0 评论 -
c++复制构造函数的形参为什么只能是引用类型?
有些看着是理所当然的东西有时候往往被我们忽略其深层次的意义,比如复制构造函数的形参被设计为引用类型,这是为什么捏? 众所周知,c++中类没有给出复制构造函数的话,编译器会自动补上一个,然而对于深拷贝来说编译器给的复制构造函数是无法胜任的。这时候,我们就要自己动手实现这个复制构造函数。class Animal{ public: Animal()转载 2015-01-12 09:07:28 · 674 阅读 · 1 评论 -
动态规划:从新手到专家
本文转载自:http://hawstein.com/posts/dp-novice-to-advanced.html (作者:Hawstein)前言我们遇到的问题中,有很大一部分可以用动态规划(简称DP)来解。 解决这类问题可以很大地提升你的能力与技巧,我会试着帮助你理解如何使用DP来解题。 这篇文章是基于实例展开来讲的,因为干巴巴的理论实在不好理解。注意:如果你对于其中某一节已经了解并且不想阅读它转载 2015-12-11 17:43:42 · 256 阅读 · 0 评论 -
c 保存json数据到结构体
在c语言跟android打交道时,避免不了从android层传递json数据到c层,如果传来的是一个配置项,保存到c的结构体中,如果配置项中有一、两项,那一个一个解析放到结构体中也并不麻烦,问题来了,如果配置项多一些就显的代码冗余并且比较麻烦,这里总结了个小方法:#include "cjson.h"typedef unsigned char uint8_tstruct __cache_info原创 2015-12-11 17:56:08 · 1475 阅读 · 0 评论 -
c简单定时器(兼容window/linux)
#include <stdio.h>#include <stdlib.h>#include <time.h>#ifdef WIN32 #include <windows.h> typedef __int64 int64_t; #define sleep(t) Sleep(t*1000) #define usleep(t) Sleep((t)/1000)#else原创 2015-09-18 12:36:19 · 739 阅读 · 0 评论 -
vs 检测内存泄漏
#include <assert.h>#include <iostream>#ifdef _DEBUG #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)#else #define DEBUG_CLIENTBLOCK#endif#define _CRTDBG_MAP_ALLOC#inclu转载 2015-08-10 14:51:39 · 295 阅读 · 0 评论 -
C++中cout的运行机制
关于C++中cout的使用,相信大家再熟悉不过了,然而对于cout是如何输出的?输出的机制是啥,需要进一步的了解。本章娓娓道来。前几天在网上看到这么一个题目:#include using namespace std;int hello1();int hello2();int main() { int a, b; cout<<"a="<<hello1()<<" b="转载 2015-03-06 11:57:46 · 708 阅读 · 0 评论 -
C/C++中的常量指针与指针常量
常量指针常量指针是指向常量的指针,指针指向的内存地址的内容是不可修改的。常量指针定义“const int *p=&a;”告诉编译器,*p是常量,不能将*p作为左值进行操作。但这里的指针p还是一个变量,它的内容存放常量的地址,所以先声明常量指针再初始化是允许的,指针也是允许修改的,例如:int a=0,b=1;const int *p; //声明常量指针pp=&a;转载 2014-12-29 17:39:17 · 290 阅读 · 0 评论 -
gdb基本命令总结
本文介绍使用gdb调试程序的常用命令。 主要内容: [简介] [举例] [其他] [简介] ============= GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。同时GDB也具有例如ddd这样的图形化的调试转载 2015-01-16 17:31:13 · 296 阅读 · 0 评论 -
高并发性能调试经验分享
作者:helloworlds链接:https://zhuanlan.zhihu.com/p/21348220来源:知乎引文4月份的时候看到一道面试题,据说是腾讯校招面试官提的:在多线程和高并发环境下,如果有一个平均运行一百万次才出现一次的bug,你如何调试这个bug?知乎原贴地址如下:腾讯实习生面试,这两道题目该怎么回答? - 编程 遗憾的是知乎很多答案在抨击这道题本身的正确性,虽然我不...转载 2018-10-10 20:06:02 · 239 阅读 · 0 评论