
C/CPP
qdylan
入对行, 跟对人。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[C/CPP][2012-06-16]new 与 malloc 的区别
1,malloc与free是C++/C语言的标准库函数, new 与 delete是C++的运算符。它们都可用于申请动态内存和释放内存。2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。 对象在创建的同时要自动执行构造函数, 对象在消亡之前要自动执行析构函数。 由于malloc/free是库函数而不是运算符,不在编译器控转载 2012-06-16 14:40:09 · 506 阅读 · 0 评论 -
[RTSP][2012-07-4] typedef
为复杂的声明定义一个新的简单的别名。举例:1. 原声明:int *(*a[5])(int, char*);变量名为a,直接用一个新别名pFun替换a就可以了:typedef int *(*pFun)(int, char*); 原声明的最简化版:pFun a[5]; 2. 原声明:void (*b[10]) (void (*)());变量名为b,先替换右边部分括转载 2012-07-04 10:19:13 · 367 阅读 · 0 评论 -
[Linux][2012-08-06] 1 字节对齐
#pragma pack(1)原创 2012-08-06 10:53:33 · 385 阅读 · 0 评论 -
[Linux][2012-08-06] pragma once & ifndef
转自:http://www.cppblog.com/szhoftuncun/archive/2007/10/28/35356.html#pragma once与 #ifndef的区别 作用: 为了避免同一个文件被include多次1 #ifndef方式2 #pragma once方式在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍转载 2012-08-14 15:07:22 · 681 阅读 · 0 评论 -
[Linux][2012-08-28] c/cpp # 井号 双井号 的使用
在宏定义中经常会用到#和##单井号(#)把传递过来的参数当成字符串进行替代如下示例:#define display(name) printf(""#name"")int main() { display(name);} 输出:name说明:# 不可以 是第一个和最后一个, 所以 前后使用“”。双井号(##)称为连接符在带参数转载 2012-08-29 11:36:06 · 4012 阅读 · 0 评论 -
[Linux][2012-09-27] Linux nm && ldd 命令
原文转自:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/22/1782685.html 1. Linux nm 命令nm [‘-a’|‘--debug-syms’] [‘-g’|‘--extern-only’][‘-B’] [‘-C’|‘--demangle’[=style]] [‘-D’|‘--dynamic’]转载 2012-09-27 17:44:25 · 1056 阅读 · 0 评论 -
[C/C++][2012-11-29] __attribute__ 详解
原文参考:http://blog.youkuaiyun.com/sunboy_2050/article/details/6566739 1. __attribute__ GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Typ转载 2012-11-29 18:01:14 · 909 阅读 · 0 评论 -
[Linux][2012-12-11] gcc -D 选项
编写程序时, 经常需要划分级别, 如 Debug 级别,release级别等。可以分开一些日志等信息是否必要。 例如: #ifdef _DEBUG_#define DEBUG_LOG printf#else#define DEBUG_LOG#endif意思就是, 如果定义了 _DEBUG_ 就 将系统中的 DEBUG_LOG 语句换成 printf,就是执行打印原创 2012-12-11 14:50:33 · 619 阅读 · 0 评论 -
[C/C++][2012-12-18] erase的返回值会指向下一个节点
erase的返回值会指向下一个节点for(TStrMapIter iter= strmap.begin(); iter!= strmap.end();){ if ("somevalue" == iter->second ) { iter = strmap.erase(iter); } else原创 2012-12-18 14:51:32 · 884 阅读 · 0 评论