C/C++
insect27
这个作者很懒,什么都没留下…
展开
-
C语言宏的高级应用
<br />C语言宏的高级应用<br />关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏: #define WARN_IF(EXP) /<br /> do{ if (EXP) /<br /> fprintf(stderr, "Warning: " #EXP "/n"); } /<br /> while(0)原创 2011-03-14 16:01:00 · 966 阅读 · 1 评论 -
C语言的变参
<br />C语言的变参 <br />函数的变参实际上就是:C语言利用调用栈而提供的一种参数传递的机制。<br />一、调用栈<br /> 我们知道C语言的调用约定为__cdecl,它的特点为:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。要了解它的确切含义,就先看一下函数调用是发生了什么,假设有如下的程序:<br />1: #include <br />2: #include <br />3: <br />4: void foo(int count, ...)原创 2011-03-14 16:02:00 · 508 阅读 · 0 评论 -
堆和栈的区别
<br />堆(heap)和栈(stack)的区别 <br />一、预备知识-程序的内存分配<br />一个由c/C++编译的程序占用的内存分为以下几个部分<br />1、栈区(stack)-由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。<br />2、堆区(heap)-一般由程序员分配释放,若程序员不释放,程序结束时可能由OS。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。<br />3、全局区(静态区)(static)-全局变量和静态变量的存储是原创 2011-02-22 13:52:00 · 388 阅读 · 0 评论 -
Ubuntu安装ATI驱动,包括启动不了的解决
主要参考:http://blog.csdn.net/xuanwu_yan/article/details/8577484 http://tech.ccidnet.com/art/3089/20100613/2087271_1.html http://www.linuxdeepin.com/forum/6/14173AMD网站下载安装包运行即可安装完成后初始化sudo原创 2013-06-25 17:14:02 · 2599 阅读 · 0 评论 -
qvfb的编译与使用
qvfb的编译注意要在qt pc版本环境下编译,因为qvfb就是一个X11程序,如果也在x86下编译了 会提示找不到X库参考 http://bbs.csdn.net/topics/390488263在终端设置环境变量 setenv.shQTDIR=/opt/Qt/4.7.4/pcPATH=$QTDIR/bin:$PATHLD_LIBRARY_PATH=$QTDIR/lib:原创 2013-06-26 16:00:39 · 1896 阅读 · 0 评论 -
Qt4.7 arm-linux移植,屏幕旋转
Qt4.7 arm-linux移植,屏幕旋转原创 2013-07-04 16:37:10 · 2852 阅读 · 0 评论 -
Linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
Linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式——在一个独立的文件夹通过makefile配合内核源码路径完成 那么如何将驱动直接编译进内核呢? 在我们实际内核的移植配置过转载 2013-07-28 20:21:50 · 775 阅读 · 0 评论