linux相关
Frideric_Sun
一个程序员成长的心路历程
在自由的空间中留下编程学习的足迹
展开
-
关于LXR和glimpse配置实现方便阅读Linux源代码的过程
关于LXR和glimpse配置实现方便阅读Linux源代码的过程注:本文主要参考下面的资料 时间:2010-1-15参考资料1: http://hi.baidu.com/fanzier/blog/item/3ad7d7546f58a55dd009066b.html 资料2:http://blog.csd转载 2013-10-14 11:37:12 · 1588 阅读 · 0 评论 -
Linux C调用C++库
调用C++函数库,一般不能直接调用,需要将C++库转换成C接口输出,方可以使用C调用将 C++ 函数声明为``extern "C"''(在你的 C++ 代码里做这个声明),然后调用它(在你的 C 或者C++ 代码里调用)。例如:// C++ code:extern"C" void f(int); void f(int i){ // ...} 然后,你可原创 2015-01-01 09:12:06 · 1272 阅读 · 0 评论 -
c头文件一览表
头文件一览表 C、传统 C++#include //设定插入点#include //字符处理#include //定义错误码#include //浮点数处理#include //文件输入/输出#include //参数化输入/输出#include //数据流输入/输出#include /原创 2015-01-01 09:14:19 · 640 阅读 · 0 评论 -
C++知识点系列之二
C++知识点系列之二1. 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。 #define MIN(A,B) ((A) 这个测试是为下面的目的而设的:1) 标识#define在宏中应用的基本知识。这是很重要的。因为在 嵌入(inline)操作符 变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码转载 2015-01-01 09:16:27 · 625 阅读 · 0 评论 -
《软件调试的艺术》学习笔记——GDB使用技巧摘要——Pthread线程调试
Unix下最普遍的线程包是POSIX标准的Pthreads。Pthreads使用的抢占式线程管理策略,程序中的一个线程可能在任何时候被另一个线程中断。所以,使用Pthreads开发的应用程序有些错误不太容易重现。GDB线程相关命令汇总1 info threads给出关于当前所有线程的信息2 thread n改为线程n,或者说是进入线程n的栈中进行观察转载 2015-01-01 07:09:43 · 1055 阅读 · 1 评论 -
#define、const、typedef的区别
#define 并不是定义变量, 只是用来做文本替换 例如: #define PI 3.1415926 float angel; angel=30*PI/180; 那么,当程序进行编译的时候,编译器会首先将 “#definePI 3.1415926”以后的,所有代码中的“Pi”全部换成“3.1415926” 然后再进行编译。 我查到一个讲const与#def原创 2015-01-01 07:45:29 · 571 阅读 · 0 评论 -
<<c++设计与演化>>
>1.c++的保护模式来自于访问权限许可和转让的概念; 初始化和赋值的区分来自于转让能力的思考; c++的const概念是从读写保护机制中演化出来. 2.BCPL注释: CPL(Combined Programming language,组合编程语言):CPL是一种在ALGOL60基础上更接近硬件的一种语言。CPL规模大,实现困难。 BCPL(Ba原创 2015-01-01 08:21:04 · 816 阅读 · 0 评论 -
C++知识点系列之一(转+整理)
c系列之一一、#include “filename.h”和#include 的区别#include “filename.h”是指编译器将从当前工作目录上开始查找此文件#include 是指编译器将从标准库目录中开始查找此文件二、头文件的作用加强安全检测通过头文件可能方便地调用库功能,而不必关心其实现方式三、* , &修饰符的位置对于*和&修饰符,为了避免误解,转载 2015-01-01 08:27:02 · 446 阅读 · 0 评论 -
C++知识点系列之三
C++知识点系列之三关于预处理 #define的常量用const取代,宏用inline函数取代。在类定义中定义的函数自动为内联函数。也可以使用inline修饰函数使其成为内联的。inline只有在函数定义时才会发挥作用。因此头文件中的内联函数都是有函数体的。inline的函数也是内部联接的。friend的函数也可以是inline的。inline只是对编译器的优化提示转载 2015-01-01 08:33:03 · 599 阅读 · 0 评论 -
C++和C语言函数相互调用之二
1.引言 C++语言的创建初衷是“abetter C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程 式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支 持函数的重载,C++对全局函数的处理方式与C有明显原创 2015-01-01 09:03:36 · 857 阅读 · 0 评论 -
C++内存对象大会战 禁止产生堆对象 禁止产生栈对象
C++内存对象大会战 禁止产生堆对象 禁止产生栈对象如果一个人自称为程序高手,却对内存一无所知,那么我可以告诉你,他一定在吹牛。用C或C++写程序,需要更多地关注内存,这不仅仅是因为内存的分配是否合理直接影响着程序的效率和性能,更为主要的是,当我们操作内存的时候一不小心就会出现问题,而且很多时候,这些问题都是不易发觉的,比如内存泄漏,比如悬挂指针。笔者今天在这里并不是要讨论如何原创 2015-01-01 08:09:45 · 1000 阅读 · 0 评论 -
C++面试——C/C++ 基础之一
1.谈谈对C++内存分配的理解1.1 还是的先看看C++对内存分为哪几个区? 真正合理的C++的内存划分为栈区、堆区、全局区/静态区、字符串常量和代码区。 1、栈区(stack)——— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。想知道为什么效率高吗?因为关于栈的操作如push集成在处理器的指令集转载 2014-11-20 10:54:15 · 690 阅读 · 0 评论 -
《软件调试的艺术》学习笔记——GDB使用技巧摘要
《软件调试的艺术》,因为名是The Art of Debugging with GDB,DDD, and Eclipse.作者是美国的Norman Matloff和Peter Jay Salzman,中文版由张云翻译。是人邮出版社图灵程序设计丛书初版。这里称为"艺术",个人觉得有点过了,但是其中关于gdb以及在gdb基础之上集成的DDD和Eclipse调试技巧的整理确实是做的很好,对于Li转载 2015-01-01 07:05:29 · 1092 阅读 · 2 评论 -
《软件调试的艺术》学习笔记——GDB使用技巧摘要——程序崩溃处理
《软件调试的艺术》学习笔记——GDB使用技巧摘要——程序崩溃处理 1 程序为什么会崩溃2 内存中的程序布局当某个错误导致程序突然和异常地停止执行时,程序崩溃。迄今为止最为常见的导致程序崩溃的原因是试图在未经允许的情况下访问一个内存位置。硬件会感知这件事,并执行对操作系统的跳转。Unix系列的平台上,操作系统一般会宣布程序导致了段错误(seg转载 2015-01-01 07:06:53 · 903 阅读 · 1 评论 -
C常用区别
最主要的用途就是当函数不处在同一个文件当中,比如动态库,要调用其他程序中的函数就只有采用回调的形式; 回调函数是一个程序员不能显式调用的函数;通过将回调函数的地址传给调用者从而实现调用。回调函数使用是必要的,在我们想通过一个统一接口实现不 同的内容,这时用回掉函数非常合适。比如,我们为几个不同的设备分别写了不同的显示函数:void TVshow();void ComputerShow();原创 2015-01-01 08:49:36 · 1082 阅读 · 0 评论 -
C C++相互调用
C C++相互调用 在项目中融合C和C++有时是不可避免的,在调用对方的功能函数的时候,或许会出现这样那样的问题,但只要我的C代码和我的C++代码分别都能成功编译,那其他就不是问题。近来在主程序是C语言,而调用C++功能函数的时候,C++的*.h头文件都能找到,功能函数也都定义了,最重要的是,单独编译C++的时候,完全没有问题,但当用主程序的C调用C++的功能函数时,总是提示该函数未定义(原创 2015-01-01 08:55:17 · 544 阅读 · 0 评论 -
#define总结-#define用法集锦 (网上资料汇集)
#define总结-#define用法集锦(网上资料汇集) Definition: The #defineDirective You can usethe #define directive to give a meaningful name to a constant in your program.The two forms of the syntax are:转载 2015-01-01 07:26:50 · 931 阅读 · 0 评论 -
C 预处理指令
C 预处理指令C语言中的条件编译指令过多的话,会严重影响代码的阅读──影响整体的美观(到处都是#号看起来很不爽,而且这种结构没有参与整体的缩进,不容易找到正确的闭合位置),分散读者的注意力(同一个功能,面向不同的平台或针对不同的情况的代码都堆在一起,靠成阅读者精力浪费)。所以,我们的原则是,不到万不得已不用C语言中的条件编译指令(很多时候可以用注释替代);在不得不使用时,要在代码文原创 2015-01-01 07:55:25 · 570 阅读 · 0 评论 -
C&C++的标准库
C&C++的标准库1.什么是C&C++的标准库? C语言被发明出来时并没有什么库函数,随着C语言的流行,越来越多的厂商或者机构组织开始提供C的编译器,并且同时把经常用到的函数封装成“库”的形式发布;不同的组织发布的库函数的接口和数量各不相同。后来,标准化组织ANSI制定了C语言的标准,同时也制定了一定数量的库(或库函数),就就成为标准库函数。(后来这个ANSI C原创 2015-01-01 08:01:00 · 523 阅读 · 0 评论 -
C中如何调用C++函数、类内函数
C中如何调用C++函数、类内函数 在C中如何调用C++函数的问题,简单回答是将函数用extern "C"声明,当被问及如何将类内成员函数声明时,一时语塞,后来网上查了下,网上有一翻译C++之父的文章可以作为解答,遂拿来Mark一下。 将C++函数声明为``extern "C"''(在你的C++代码里做这个声明),然后调用它(在你的C或者C++代码里调用)。例如:// C++原创 2015-01-01 09:06:46 · 3432 阅读 · 0 评论