C/C++
丿寒风
网易游戏3年,游戏创业4年,3D设计软件架构师4年...
展开
-
Linux静态库逐步详解
一 源文件下载有如下两个源文件原创 2014-08-25 23:51:19 · 1057 阅读 · 0 评论 -
GCC实现多文件编译,静态库,动态库
#mf:mult file#liba: liaxxx.a#libso:libxxx.sorun:main ./mainmfo:add.c main.c gcc -c add.c main.cmfe:mfo gcc -o main add.o main.olibo:add.c gcc -c add.c原创 2014-07-15 18:54:34 · 1723 阅读 · 1 评论 -
兼容C++的C头文件书写方式
最近在阅读libevent的源码,学到了不少东西,兼容C++的C头文件书写方式就是其中之一。一 书写方式下面是event.h文件的源码:#ifndef _EVENT_H_#define _EVENT_H_#ifdef __cplusplusextern "C" {#endif#include #ifdef _EVENT_HAVE_SYS_TYPES_H#inclu原创 2015-09-25 19:28:06 · 3867 阅读 · 0 评论 -
《C++ Primer》和《C++ Primer Plus》拾遗
1 程序 = 算法 + 数据2 结构化编程C 面向过程 强调算法3 面向对象编程C++ 面向对象 强调数据类是一种规范,描述数据的格式类 = 数据 + 算法 + 面向对象三大特性(封装、继承、多态)4 泛型编程独立于数据类型 强调算法5 sizeofsizeof是运算符,对类型一定需要加括号,对变量括号可选例如:l原创 2015-01-28 19:57:09 · 2335 阅读 · 0 评论 -
C语言五个常用的调试宏
__FILE__: 所在文件名__FUNCTION__:所在函数名__LINE__:所在行数__DATE__:执行日期__TIME__:执行时间#include int main() { printf("%s\n", __FILE__); printf("%s\n", __FUNCTION__); printf("%d\n", __LINE原创 2015-11-06 14:15:13 · 2711 阅读 · 0 评论 -
C++类的实现方式
假设有一个简单类如下:class Test{private: int m;public: Test(int i) { m = i; } int getM(){ return m; } static void print() { cout << "static func" << endl; }};调用如下:Test t(1);a.getM();Test原创 2015-11-25 00:37:05 · 1192 阅读 · 0 评论 -
类型对指针运算的影响
同一个指针值,不同类型运算的结果不同。原创 2015-11-11 19:05:34 · 743 阅读 · 0 评论 -
标准输入流stdin
FILE结构体:struct _iobuf { char *_ptr; int _cnt; char *_base; int _flag; int _file; int _charbuf; int _bufsiz; char *_tmpfname;};typedef struct _iobuf FILE原创 2015-11-16 20:42:29 · 1744 阅读 · 0 评论 -
你不知道的scanf和fscanf
#include #include int main(){ int num = 0; //scanf("%d", &num);// 输入:4 scanf("num = %d", &num);// 输入:num = 4,需要跟前面的字符串匹配(可以有多余的空格),否则无法读取 printf("num = %d\n", num);// 输出:num = 4原创 2015-11-16 20:15:51 · 772 阅读 · 0 评论 -
C++11之lambda表达式
C++11中引入了lambda表达式,允许使用匿名函数。其语法如下:1 函数对象参数,必须,标志lambda表达式的开始,有三种参数可选:a 空,不能使用lambda表达式所在作用域中的变量。b =,可以使用lambda表达式所在作用域中的变量,值传递。c &,使用lambda表达式所在作用域中的变量,引用传递。2 函数参数列表,非必需,无参数时可省略,la原创 2015-09-17 00:42:00 · 836 阅读 · 0 评论 -
C++11之线程
设计到网络请求的地方一般都需要用到线程,C++11标准中增加了thread,下面是最简单的一个线程使用示例。#include #include void thread_task(){ std::cout << "thread task" << std::endl;}int main(){ std::thread t(thread_task);原创 2015-03-30 15:32:07 · 1047 阅读 · 0 评论 -
指针两个要素,彻底理解指针
一 背景指针时C/C++的难点,也是重点。看到网上有不少人说起C/C++的不足时,总是不忘说指针;实际上指针只是给了开发者操作内存的权限。二 定义百度百科的定义:指针是一个用来指示一个内存地址的计算机语言的变量。首先指针时一个变量,拥有一般变量的所有特性,有生命周期,有作用域,可以赋值等;其次,指针有它自己的特点:“用来指示一个内存地址”。三 两要素原创 2015-01-07 10:47:58 · 1811 阅读 · 0 评论 -
boost在多平台下的安装
曾经给自己定下了一个宏伟的目标,想把cocos2dx的洗一个教程;可惜...不说了,所动了都是泪啊,直接进入正体。首先,不要问我boost是什么,因为我也不知道,“度娘”和“谷哥”在等你,嘿嘿。一 Mac OSMac下面有两种安装方式都是很方便的,网上世纪也都给出来了,我也是站在巨人的肩上,然后对他的内容做个整理,仅此而已啦。1 MacPorts安装1.1 环境配置Ma原创 2014-05-23 15:24:59 · 1109 阅读 · 0 评论 -
C语言基础知识梳理
准备开一个博客专栏,关于Cocos2d-x游戏开发的。因为Cocos2d-x是C++编写的,所以也打算使用C++来讲。这里先写一点关于C的基础知识,便于大家梳理和复习,接下来寒风会整理一下C++的知识点给大家。一 数据类型二 命名规范个人推荐“匈牙利命名法”(也有人不推荐使用)附录:MFC、句柄、控件及结构的命名规范Windo原创 2013-12-18 18:47:50 · 2532 阅读 · 0 评论 -
C++11之tuple和数据类型
C++11仲引入了多元数组tuple,用于存放不同数据的数组。初始化方法有两种:tuple() 构造函数make_tuple() 创建函数主要有以下几个常用函数:head() 获取第一个元素的值tail() 获取剩下所有元素的值get() 获取第N个元素的值,N必须为常量,无法使用循环遍历tupletuple_element::type 获取第N个元素的类型原创 2014-12-27 16:59:48 · 2999 阅读 · 0 评论 -
C语言八进制和十六进制数
一 赋值int dex = 100;// 默认十进制int oct = 0144;// 八进制,以0开始int hex = 0x64;// 十六进制,以0x开始二 输出void show(int x){ printf("dec = %d; octal = %o; hex = %x\n",x,x,x); printf("dec = %d; octal = %#o;原创 2014-09-03 12:55:46 · 2339 阅读 · 1 评论 -
C/C++判断传入的UTC时间是否在今天
在项目中经常会显示一个时间,如果这个时间在今日内就显示为时分秒,否则显示为年月日。这里先给出一个正确的版本:#include #include using namespace std;bool IsInToday(long utc_time){ time_t timeCur = time(NULL); struct tm curDate = *l原创 2014-01-06 21:44:43 · 3108 阅读 · 1 评论 -
C++语言基础知识点梳理
C++基础知识体系原创 2013-12-23 21:09:39 · 5492 阅读 · 0 评论 -
C++11之array原理及使用
C++11中增加了array,代替原来C语言中的数组。同时,也避免了动态数组new和delete的使用,内存自动管理。而且,执行效率比vector高。一 定义在array头文件中定义:template< class T, std::size_t N > struct array;如果我们自己来写一个array模板类的话,大概应该想这个样子:...原创 2015-01-27 10:03:33 · 1904 阅读 · 0 评论