随笔分类 -  C/C++

GDB十分钟教程
摘要:GDB十分钟教程作者: liigo原文链接:http://blog.csdn.net/liigo/archive/2006/01/17/582231.aspx日期: 2006年1月16日本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程序爱好者。GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。命令解释示例file <文件名>加载被调试的可执行程序文件。因为一般都在被调试程序所在目录下执行G 阅读全文
posted @ 2013-05-03 18:40 dartagnan 阅读(849) 评论(2) 推荐(1)
升级GCC 4.6后的warning: ”variable set but not used“
摘要:http://xifage.com/gcc-4-6-warning-variable-set-but-not-used/http://blog.163.com/muren20062094@yeah/blog/static/16184441620117144138999/===========================================这是将gcc从4.3升级到4.6的新特性,诸位不必惊慌! 阅读全文
posted @ 2013-04-28 17:10 dartagnan 阅读(1846) 评论(0) 推荐(0)
Linux下 用消息队列收发变长的消息
摘要:把 struct msg 改一下,struct msg{ long int msgtype; int count; unsigned int data[35];}其中count记录总共有多少个 data,这样就可以发送变长的消息了,比如你要发10个unsigned int,那么struct msg mymsg;mymsg.msgtype = XXXX;mymsg.count = 10;/* 发消息时,不用把整个msg都发出去,只需要发有效的内容 */len = sizeof(msg) - sizeof(unsigned int) * (35-mymsg.count);mq... 阅读全文
posted @ 2013-04-19 17:19 dartagnan 阅读(900) 评论(0) 推荐(0)
linux IPC-消息队列 的内核限制
摘要:几乎所有的 Linux 发行版本都包含ipcs 命令,该命令可以提供当前加载到系统上的IPC 资源信息。通过 ipcs 可以确定系统的当前 IPC 限制,还可以检查系统当前使用的上述三类IPC资源的状态。例如,假若应用程序启动失败,可以检查系统上的 IPC使用情况来判断是否已超出了某个IPC限制。为了确定系统的IPC资源状态,可以在 root用户权限下执行带有-u 选项的 ipcs 命令。# ipcs -u------ Shared Memory Status --------segments allocated 32pages allocated 2361pages resident 253 阅读全文
posted @ 2013-04-19 17:18 dartagnan 阅读(777) 评论(0) 推荐(0)
sizeof和strlen的区别与联系
摘要:sizeof() 运算符与 strlen()函数的区别与联系! 阅读全文
posted @ 2013-04-19 13:50 dartagnan 阅读(764) 评论(1) 推荐(0)
在C语言中,double、long、unsigned、int、char类型数据所占字节数
摘要:实在是记不住了,记下来 阅读全文
posted @ 2013-04-18 19:43 dartagnan 阅读(56588) 评论(0) 推荐(2)
unsigned, unsinged int,unsigned long,size_t还是std::size_t?
摘要:unsigned,unsinged int,unsigned long,size_t还是std::size_t?首先四种类型都是无符号类型,是用以表示元素个数或者数组索引的最佳类型。在作为函数参数时,不需像有符号类型那样检测值是否小于零。1.::size_t还是std::size_t请使用std::size_t,因为你处于C++的世界。在此,所有C++标准库组件用以表示元素个数的类型(比如size()或者operator[])都是std::size_t。std::size_t count = array.size(); // array是typedef vector<int>std 阅读全文
posted @ 2013-03-19 15:18 dartagnan 阅读(495) 评论(0) 推荐(0)
C语言中堆和栈的区别(转过无数次的文章)
摘要:一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 程序结束后由系统释放。 4、文字... 阅读全文
posted @ 2013-03-18 10:23 dartagnan 阅读(366) 评论(0) 推荐(0)
C语言动态分配二维数组
摘要:1. C语言动态分配二维数组(1)已知第二维Code-1char (*a)[N];//指向数组的指针a = (char (*)[N])malloc(sizeof(char *) * m);printf("%d\n", sizeof(a));//4,指针printf("%d\n", sizeof(a[0]));//N,一维数组free(a);(2)已知第一维Code-2char* a[M];//指针的数组int i;for(i=0; i<M; i++)a[i] = (char *)malloc(sizeof(char) * n);printf(&qu 阅读全文
posted @ 2013-02-20 21:16 dartagnan 阅读(492) 评论(0) 推荐(0)
fprintf、printf、sprintf、fscanf、scanf、sscanf 格式化输入输出
摘要:以下内容转自:http://blog.csdn.net/21aspnet/article/details/1535570printf、sprintf与fprintf 的用法区分1.printf 是和标准输出文件(stdout)关联的,fprintf 则没有这个限制.2.fprintf是用于文件操作的,原型是int fprintf( FILE *stream, const char *format [, argument ]...);3.sprintf是格式化输出到一个字符串,fprintf是格式化输出到一个stream,通常是到文件。intfprintf(FILE*stream,constch 阅读全文
posted @ 2013-02-06 19:42 dartagnan 阅读(819) 评论(0) 推荐(0)
for loop initial declaration used outside C99 mode
摘要:在用 Eclipse CDT 编写c程序时出现 `for' loop initial declaration used outside C99 mode 错误是因为加 -std=c99 选项C99标准支持下面这种for 循环的变量i的定义及初始化方式:for (int i=1; i<10; i++){ printf("Hello C!");}C99标准之外的C标准支持下面这种for 循环的变量i的定义及初始化方式:int i=1;for (i=1; i<10; i++){ printf("Hello C!");}解决办法:右键点击项目 阅读全文
posted @ 2013-02-05 17:31 dartagnan 阅读(6683) 评论(0) 推荐(0)
例解GNU C之零长数组与变长数组
摘要:http://blog.csdn.net/npy_lp/article/details/7009120===================================== 前言:计算机语言是编译器和程序员交流的依据和规范,GNU C是GCC特有的功能,在Linux内核中被广泛应用。 帮助文档:http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc/C-Extensions.html#C-Extensions 1、零长数组 GNU C允许声明长度为零的数组,但它只能被用于结构体的最后一个成员。 举例,如清单1:[cpp]view plaincopy#... 阅读全文
posted @ 2013-02-05 17:28 dartagnan 阅读(430) 评论(0) 推荐(0)
C/C++ 笔试、面试题目大汇总
摘要:这些东西有点烦,有点无聊。如果要去C++面试就看看吧。几年前网上搜索的。刚才看到,就整理一下,里面有些被我改了,感觉之前说的不对或不完善。 阅读全文
posted @ 2012-12-13 20:30 dartagnan 阅读(303) 评论(0) 推荐(0)
c语言中static的用法,包括全局变量和局部变量用static修饰
摘要:关于全局/局部变量,静态/非静态变量的问题总结:http://wenku.baidu.com/view/6390cf3610661ed9ad51f3ba.html一、c程序存储空间布局 C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。 3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。 4)栈——增长方向:自顶向下增长;自动变量以及每次函数调用时所需要保存的信息(返回地址;环境信息)。 5)... 阅读全文
posted @ 2012-12-13 18:30 dartagnan 阅读(6219) 评论(0) 推荐(0)
C语言变量的初始化
摘要:1. 全局变量的初始化对于不同编译单位的全局变量,其初始化的顺序没有任何的保证,因此对不同编译单位里的全局变量,在它们的初始化顺序之间建立依赖性都是不明智的。此外也没办法捕捉到全局变量初始化抛出的异常,一般来说要减少全局变量的使用,特别是限制那些要求复杂初始化的全局变量。 1,尽量不用全局变量 2,用静态变量,通过访问器进行访问 例如:全局变量 int a = 5; int b = a; 如果a,和b定义在同一个文件里,那没什么问题,结果b等于5. 如果a和b定义在不同文件里,就不能保证b也等于5,也就是说不能保证a先初始化.事实上,除了在同一个文件定义的全局对象的初始化是按照定义次序来进行的 阅读全文
posted @ 2012-12-13 18:27 dartagnan 阅读(5067) 评论(0) 推荐(0)
C语言中的全局变量内存分配和初始化顺序
摘要:C语言中的全局变量内存分配和初始化顺序 阅读全文
posted @ 2012-12-13 18:26 dartagnan 阅读(1310) 评论(0) 推荐(0)
C语言const详解
摘要:基本解释 const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题。 问题:const变量 & 常量 为什么我象下面的例子一样用一个const变量来初始化数组,ANSI C的编译器会报告一个错误呢?const int n = 5;int a[n]; 答案与分析: 1)、这个问题讨论的是“常量”与“只读变量”的区别。常量肯定是只读的,例如5,. 阅读全文
posted @ 2012-12-13 18:24 dartagnan 阅读(569) 评论(0) 推荐(0)
typedef和define的详细区别
摘要:对于都可以用来给对象取一个别名的Typedef和define来说,是有区别的。本文通过对typedef和define的介绍,来给读者详细的讲解它们存在的本质区别,供参考。AD:typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。 #define是预处理指令。下面让我们一起来看。typedef是C语言语句,其功能是用户为已有数据类型取“别名”。例如:typedefintINTEGER;这以后就可用INTEGER来代替int作整型变量的类型说明了,如:INTEGERa,b;用typedef定义数组、指针、结构等类型将带来很大的方便 阅读全文
posted @ 2012-12-13 15:28 dartagnan 阅读(423) 评论(1) 推荐(1)
线程间通信常用的三种方法
摘要:多线程通信的方法主要有以下三种:1.全局变量进程中的线程间内存共享,这是比较常用的通信方式和交互方式。注:定义全局变量时最好使用volatile来定义,以防编译器对此变量进行优化。2.Message消息机制常用的Message通信的接口主要有两个:PostMessage和PostThreadMessage,PostMessage为线程向主窗口发送消息。而PostThreadMessage是任意两个线程之间的通信接口。2.1.PostMessage()函数原型:B00L PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);参数: 阅读全文
posted @ 2011-11-21 20:22 dartagnan 阅读(33279) 评论(0) 推荐(0)
Linux C/C++ 开发工具集锦
摘要:Linux c/c++ 开发工具集锦 阅读全文
posted @ 2011-11-17 20:39 dartagnan 阅读(15522) 评论(0) 推荐(0)