c/c++
奔跑的香蕉
半吊子程序
展开
-
浅谈“宏”
看cocos2dx源码的时候发现了一大堆宏的定义,所以决定好好去学习一下宏,在看了一位大神的博客后,决定写一遍笔记防止忘记。大神的博客:hanchaoman我只提取了一部分一:宏常量 在平时编代码的时候,我经常使用诸如 #define SPEED 10的宏常量,那么程序里很多控制速度的函数或者变量可以直接使用SPEED,之后发现速度太快或者太慢直接在程序文原创 2015-06-06 17:43:38 · 473 阅读 · 0 评论 -
c/c++ 之宏的黑魔法
基础用法类的设计#、#@、##应用-日志原创 2017-07-19 20:50:32 · 882 阅读 · 0 评论 -
C++静态成员函数访问非静态成员的几种方法
转自:点击打开链接大家都知道C++中类的成员函数默认都提供了this指针,在非静态成员函数中当你调用函数的时候,编译器都会“自动”帮你把这个this指针加到函数形参里去。当然在C++灵活性下面,类还具备了静态成员和静态函数,即class A{public: static void test() { m_staticA += 1; }转载 2017-05-29 19:23:19 · 631 阅读 · 0 评论 -
std::move和std::forward
通过了解std::move和std::forward不做什么来理解它们很有用。std::move不移动任何东西,std::forward也不转移任何东西。在运行时(runtime),他们什么都不做,一行代码也不产生。std::move和std::forward仅仅是进行类型转换的函数(实际上是函数模板)。std::move无条件的将其参数转换为右值,而std::forward只在必要情况下进行转载 2017-03-07 12:09:17 · 416 阅读 · 0 评论 -
base64加密解密c++的简单实现
与其说是加密解密,还不如说是编码和解码吧,这种加密方式只能防止人一眼看穿。但是把它拿来学习位操作还是不错的。const char myBase64Table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";const char myBase64Map[256] ={ 255, 255,原创 2016-04-23 17:54:43 · 4283 阅读 · 1 评论 -
简单的收发协议服务器
协议头文件:#ifndef __PACKAGE_H__#define __PACKAGE_H__enum{ PACK_TYPE_LOGIN, PACK_TYPE_ACTION, PACK_TYPE_QUIT,};struct pack_s{ int type;};struct pack_login{ int type = PACK_TYPE_LOGIN; i原创 2016-04-21 13:49:19 · 447 阅读 · 0 评论 -
排序算法之——冒泡排序
排序算法中冒泡应该算是比较简单的,但是效率比较低,不适合大规模的数据排序。先上代码:void prinary(int *a,int n);inline unsigned __int64 GetCycleCount();void Bubble1(int *a,int n);void Bubble2(int *a,int n);int counts=0;int _tmain(int原创 2015-09-10 15:16:20 · 450 阅读 · 0 评论 -
收集的一些c++知识点与题目一
收集的知识点都是之前没有接触过或者不太明白的,题目自己都有做过,如果有错误请提出~//可变参数的函数#include int count_f(int num, ...);int main() { int a = count_f(5,1,2,3,4); cout<<a<<endl; return 0;} int count_f(int num, ...){原创 2015-09-09 17:03:54 · 430 阅读 · 0 评论 -
C++堆内存和栈内存详解
堆:顺序随意栈:先进后出堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈2、堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵转载 2015-08-18 11:24:52 · 1399 阅读 · 0 评论 -
深入解析C语言声明
如果说C语言声明很简单的人不是牛人就是还没入门。本文来讲解C语言的声明的一些基本内容,很多内容参考《c专家编程》。首先由一个最简单的问题引入,你知道 int * p[5] 和 int (*p)[5] 的区别在哪里吗?把后面的答案遮到,想想。也许你知道反正一个是含有五个指向整型的指针元素的指针数组,另一个是指向一个拥有5个整型元素的数组的指针,具体呢?int *p[5]是一个含有五个整型指针转载 2015-08-03 17:07:45 · 494 阅读 · 0 评论 -
技术分享会之——智能指针
由于之前也只是了解智能指针,要我说估计只能说个它是干什么的,用不了几分钟。昨天花了一天时间各种百度,算是对智能指针有了一点了解,这篇文章基本就是这次分享会的PPT的copy,没有底层的东西,多是概念。我觉得理解智能指针需要了解它发展的三个过程:起因,经过,结果。这篇文章主要讲述的是起因,经过和结果等以后工作了,实际接触了再说吧。起因:1.为什么需要智能指针我们先看两个例原创 2015-07-22 17:32:40 · 621 阅读 · 1 评论 -
c/c++笔试题目
原文地址:http://blog.csdn.net/hackbuteer1/article/details/79265921、以下程序的运行结果是()[cpp] view plaincopyint main(void) { printf("%s , %5.3s\n","computer","computer");转载 2015-08-01 11:16:14 · 2325 阅读 · 0 评论 -
c++ 动态创建二维数组
为了做一个东西需要用到动态创建二维数组,特此记录.#include #include "time.h"using namespace std;int main(){ srand((unsigned)time(NULL)); int x_num; int y_num; cout<<"please input x_num:"; cin>>x_num; cout<<"p原创 2015-07-08 18:04:30 · 1421 阅读 · 0 评论 -
1.Redis学习--本地Redis实现之内存池
最近在学习redis源码,想着光看不如自己动动手,于是写了个localRedis如名字所示,这是个本地数据库,有着与redis类似的命令接口,但内部实现比较简单,只提取了一些主要逻辑如有错误或不合理的地方,恳请指出!谢谢!源码地址: https://github.com/BAN1993/localRedis(这篇文章主要是内存池的实现,与redis关系不大~)目的...原创 2019-09-18 00:05:21 · 848 阅读 · 1 评论