C/C++
文章平均质量分 81
sean_xyz
问渠那得清如许,为有源头活水来
展开
-
10 Tips to Make Your C Program Effective
The beauty of any code lies not only in finding the solution to a given problem but is in its simplicity, effectiveness, compactness and efficiency( memory ). Designing the code is harder than actuall转载 2014-02-13 18:58:51 · 925 阅读 · 0 评论 -
Eclipse GDB 挂掉
系统 ubuntu 1404, IDE: eclipse 3.8调试程序过程中,突然发现eclipse debug 的时候会在变量声明的时刻挂掉, 推出调试例如 在容器的变量声明处vector xxx; 原因: 在上一次的Debug中, Expression 窗口跟踪了一些类似 xxx.size() 的表达式更令人奇怪的是,这种现象不是必现的,但有原创 2016-03-08 16:03:06 · 868 阅读 · 0 评论 -
国外程序员整理的 C++ 资源大全
C++是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。应用较为广泛,是一种静态数据类型检查的,支持多重编程的通用程序设计语言。关于 C++ 框架、库和资源的一些汇总列表,由 fffaraz发起和维护。内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard Li转载 2014-10-24 20:36:39 · 795 阅读 · 0 评论 -
跨平台linux, windows, android系统识别
使用宏识别 linux, windows, android系统(区分大小写),如下:__linux__ __WINDOWS__ANDROID例如:#ifdef ANDROID#include #else#ifdef __linux__ #include #endif#endif例如:#ifdef __WINDOWS__ video.o原创 2016-03-24 16:13:33 · 1381 阅读 · 0 评论 -
SIMD简介
本文总结本人工作中所接触到的SIMD资料。SIMD: single instruction multiply data, 单指令多数据。根据本人的熟悉程度分别为:1、NEON:ARM cortex-A 系列2、MMX、SSE、AVX: PC机3、GPU:opecl 框架下4、CEVA:DSP1、NEON《Using the GNU Compiler Coll原创 2015-03-10 09:39:00 · 8923 阅读 · 0 评论 -
c++ windows 获取mac地址
本人是使用了第四种方法,简单,可以查询多个网卡。第一种方法,默认支持WindowsXP, 在win7上使用时会出错,每次查询的Mac地址都是不一样的,都是错的。方法三是最保险的方法,但是需要做烦琐的字符处理和管道通信,不建议在速度要求高的场合使用。其他方法还没有尝试过。本人比较喜欢linux上的开发,在这里晒晒Windows相关的代码,做个保存而已。以下内容,来自http://remove转载 2015-01-29 16:17:36 · 21609 阅读 · 2 评论 -
使用mtrace进行内存泄漏检查
1. 添加头文件#include 2. 代码中添加mtrace(), muntrace() 函数int main(int argc, char* argv[]){#ifdef MEMORY_CHECK mtrace();#endif ... // other codes#ifdef MEMORY_CHECK muntrace();#endif }原创 2014-11-16 10:16:50 · 2834 阅读 · 0 评论 -
动态链接的理解
动态链接,在可执行文件装载时或运行时,由操作系统的装载程序加载库。大多数操作系统将解析外部引用(比如库)作为加载过程的一部分。在这些系统上,可执行文件包含一个叫做import directory的表,该表的每一项包含一个库的名字。根据表中记录的名字,装载程序在硬盘上搜索需要的库,然后将其加载到内存中预先不确定的位置,之后根据加载库后确定的库的地址更新可执行程序。可执行程序根据更新后的库信息调用转载 2014-04-28 14:17:10 · 1738 阅读 · 0 评论 -
c语言动态加载动态库(dlopen、dlsym)
EPDKcreate_parser create_parser; handle->dl_handle = dlopen("libdemux_rmvb.so", RTLD_NOW); if(handle->dl_handle == NULL) { LOGW("open .so failed"); handle->reserved_0 = handle->reserved_1 =原创 2014-04-28 13:49:28 · 4563 阅读 · 0 评论 -
Using MSYS with MinGW
Using MSYS with MinGWIt is convenient to have your MinGW installation mounted on /mingw, since /mingw is on MSYS PATH by default. For this to work, just type (assuming MinGW is on c:\mingw):mo转载 2014-04-27 11:28:49 · 584 阅读 · 0 评论 -
(short (*)[2])malloc(size * count);
最近遇到这样几句代码:原创 2014-04-18 16:10:10 · 871 阅读 · 0 评论 -
c语言的static用作函数链接限制
c++ 中可以使用 namespace 来避免同名引发的错误,而c语言的大型项目中要做到这一点,就有点难度了,通常会使用static来修饰函数。static 修饰函数声明时,表示该函数只用于本文件的调用范围。效果见下面的小例子:情况1:××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××a.h原创 2014-02-14 15:48:20 · 972 阅读 · 0 评论 -
内存分配对齐
1. 调用palloc()函数,实现动态分配地址对齐的内存(但是很多系统中默认是不提供这个接口的,不过大多数底层硬件商都在里面做了这个接口)2. 动态分配对齐的内存:自己在malloc()函数的基础上进行封装(推荐使用这种方式) 方案一: 简单地对如下代码进行封装,自己建立一个buffer池进行管理 eg: 申请大小为 size,原创 2014-10-28 16:21:39 · 1437 阅读 · 0 评论